2016-03-29 11 views
3

Ich schreibe ein Programm, um eine Nummer mit Klassenobjekt umzukehren. Ich habe Konstruktor erstellt, die Kwarts liest. Der Code werfen keinen Fehler gibt aber 60 statt 42.Umkehren einer Zahl mit Klasse in Python

class Nups: 
    def __init__(self,**kwargs): 
     self._vars = kwargs 
    def rev(self,f): 
     h=0 
     r=self._vars.get(f) 
     print r 
     while r!=0: 
      h=h+(r%10)*10 
      r=r/10 
     return h 

Jetzt main():

def main(): 
    p=Nups(first=24,second=45) 
    print p.rev('first') 

if __name__ == '__main__': 
    main() 

Ausgang:

24 
60 
+0

Ich nehme an, Sie verwenden Python 2. Wenn ja, wäre es besser, wenn 'Nups' so definiert ist, dass es von 'Objekt' erbt, so: 'class Nups (object):'. Außerdem sollten Sie den Etagenunterteilungsoperator verwenden: 'r = r // 10' oder' r // = 10'. Mit diesen Änderungen wird Ihr Code sowohl mit Python 2 als auch mit Python 3 kompatibel sein. –

Antwort

2

dieses Do

h = h * 10 + (r % 10) 

statt

h = h + (r % 10) * 10 

Ihr Code wurde die letzte Ziffer zu nehmen und es durch 10 multipliziert und dann zu h hinzufügen. Stattdessen sollten Sie h von 10 multiplizieren und dann zu h

+0

@ PM2Ring Duly notiert! –

0

die letzte Ziffer der Nummer hinzufügen können dies auch:

return eval(str(number)[::-1]) 
Verwandte Themen