die Aufgabe wurde in codecademy Practice Makes Perfect digit_sum diskutiertPython Codecademy digit_sum
Wo Sie die Ziffern einer positiven Zahl summieren müssen. Ich benutze den String Weg, um die Aufgabe zu entscheiden (nicht die Teilung).
Mein Code ist
def digit_sum (n):
total = 0
for digit in range(len(str(n))):
total += int(n[digit])
return total
number = raw_input("Please print a long number: ")
print digit_sum(number)
Es alles in Ordnung und mit 1001 arbeitet wie mit 434.
jedoch das Programm sagt: Hat Ihre digit_sum Funktion übernimmt genau ein Argument (eine positive ganze Zahl) ? Ihr Code hat ein "int" -Objekt geworfen hat kein Attribut 'getitem' "Fehler.
Was kann falsch sein, wenn der Code funktioniert?
Danke!
Du hast mich dazu geschlagen! – alfonso
Ihr Programm ist in Ordnung. Möglicherweise versucht der Prüfer zu verifizieren, dass die Eingabe für "digit_sum" eine tatsächliche Ganzzahl anstelle einer Zeichenfolge ist. Versuchen Sie, die letzte Zeile zu 'print digit_sum (int (number)) 'zu ändern und sehen Sie, wie das geht. (Du gibst später sowieso 'str' aus, obwohl du beim' n [digit] '' noch einmal casten musst, da das jetzt nicht funktioniert.) – Evert
Wenn dein "n" eine ganze Zahl ist, dann 4. Zeile 'n [Ziffer]' ist falsch - Sie können eine ganze Zahl nicht indizieren, Sie müssen sie zuerst in eine Zeichenkette umwandeln. es gibt gute Beispiele wie man das schneller und schöner macht unter – Jerzyk