2016-11-12 2 views
0

Ich bin ein absoluter Anfänger in der Programmierung. Meine Frage ist, was eigentlich dieser Code tut. Ich denke, es dauert das gesamte Divisionsergebnis von 10 und berechnet dann Mod 10 und druckt es. Die res hier denke ich ist kein integrierter Befehl in Python, und ist nur eine Variable hier verwendet, aber ihr Wert ist Null.Verstehen dieser einfachen Code

Hier ist der Code in Frage:

res=0 
num=int(input("Enter a postive integer: ")) 
while num > 0: 
    res=res+(num % 10) 
    num = num // 10 
    print(res) 
+0

Haben Sie den Code ausgeführt? [Das sieht ähnlich aus] (http://stackoverflow.com/questions/14939953/sum-the-digits-of-a-number-python#14940026) –

+0

Es ist ein gegebener Code, der Teil der Hausaufgaben ist. Ich habe es ausgeführt, und das ist, was ich denke, es tut, aber wenn das wahr ist, wie können die Ergebnisse größer als 9 sein. –

+0

Weil 'res' zu –

Antwort

0

Versuchen Sie, diese läuft.

res=0 
num=int(input("Enter a postive integer: ")) 
while num > 0: 
    print("res = {0} + {1}".format(res, num % 10)) 
    res = res + (num % 10) 
    num = num // 10 
print(res) 

In Worten while num > 0, die Ziffern von num werden summiert, von rechts nach links.

res beginnt bei 0 und erhöht sich jedes Mal über die Schleife.

+0

Danke, jetzt verstehe ich, was es tut. Aber ich verstehe nicht wirklich, wie es das macht. Ich meine, welcher Command bedeutet hier "Summen aller Ziffern"? Die "num // 10" in Python gibt mir das Ergebnis der ganzen Zahl, das durch zehn geteilt wird, und "num% 10" gibt mir den Rest der Division durch zehn. Also was genau hier sagt dem Programm, die Ziffern zusammenzufassen? –

+0

'res' ist eine ganze Zahl. '+' fügt Dinge hinzu. 'res = res +' fügt den vorhandenen 'res' Wert hinzu und kann als' res + = 'neu geschrieben werden –