2017-08-19 2 views
-3

ich folgenden Code verwenden Summe der Ziffern in Python finden wird aber Endlosschleife gestartet als ich Programm ausgeführt istEndlosschleife gestartet, Warum?

def digit_sum(n): 
    k=str(n) 
    i=0 
    while i<range(len(k)): 
     l=int(i) 
     j=0 
     j=j+i 
     print j 
     i+=1 

digit_sum(1234) 
+2

hinterlassen bitte Code und Fehlermeldung als Text. Es sieht so aus, als ob Sie einen Einrückungsfehler haben. –

+0
+0

Da hier die falsche Einrückung die Ursache des Fehlers war, macht die Bearbeitung zur Korrektur der Einrückung sowohl die Frage als auch die Antworten bedeutungslos. Ich frage mich, ob es besser wäre, zurück zu rollen ... –

Antwort

0

Die Vertiefung falsch. Die While-Schleife befindet sich außerhalb Ihrer Funktion. Einrücken, um in der Funktion zu bleiben. Geben Sie Ihren Variablen auch aussagekräftigere Namen.

0

Sie haben einen Einrückungsfehler.

Also, um die richtige Ausgabe zu erhalten versuchen Sie diesen Weg. Sie können diesen Code here überprüfen.

def digit_sum(n): 
    k = str(n) 
    i = 0 
    j = 0 
    while i < len(k): 
     l = int(k[i]) 
     j = j + l 
     i += 1 
    print j 

digit_sum(1234) 
0

Sein sieht aus wie Sie Python neu sind so im Gehst du zu helfen, ich habe Sie es gesehen kodieren scheint, wie Sie Einbuchtung Problem und einige Logik Problem haben auch so habe ich es es aktualisiert sehen hier

def digit_sum(n): 
    k = str(n) 
    j = 0 #sum for digits 
    i = 0 
    while i in range(len(k)): 
    #Add convert string to the int and add to the sum 
    j = j + int(k[i]); 
    #increment Counter 
    i = i+1 
    print j # print Sum 
digit_sum(1234) 

Für weitere Informationen über Einbuchtung können Sie See Here

+0

Danke für die Hilfe;) –

+0

@MohitMalik nur um zu bemerken, dass außerhalb dieser eine Übung wäre, würden Sie dies als 'sum schreiben (int (ch) für ch in str (n) ' –

+0

Warum ist das falsch? while i

Verwandte Themen