Seite 1 von 1

Fehler bei quersumme programmiert, aber seit nem jahr nurnoc

Verfasst: Donnerstag 10. Juni 2004, 21:16
von Glamdring
Naja, ich hab zwar schon Python programmiert, aber seit nem Jahr nurnoch C++. Dann bin ich über ein altes (nicht mehr funktionsfähiges Script gestolpert und wollts reparieren. Dabei gabs aber nen dummen Fehler:

Code: Alles auswählen

def quersumme(zahl):
    erg = 0
    var = ""
    var = str(zahl)
    for i in var:
        erg += int(i)
    print erg

def advanced_quersumme(zahl):
    erg = 0
    erg = quersumme(zahl)
    for i in range(3):
        erg = quersumme(erg)
    print erg
    
var = raw_input("Zahl:")
advanced_quersumme(var)

Der Fehler:
Traceback (most recent call last):
File "D:/Altdaten C/tests/test.py", line 17, in ?
advanced_quersumme(var)
File "D:/Altdaten C/tests/test.py", line 13, in advanced_quersumme
erg = quersumme(erg)
File "D:/Altdaten C/tests/test.py", line 6, in quersumme
erg += int(i)
ValueError: invalid literal for int(): N
Dieser fehler kommt immer, bei jeder Zahl ???

thx im voraus

Verfasst: Freitag 11. Juni 2004, 00:14
von Seb
du durchläufst den ganzen string und castest jedes char zu int, das geht solange gut bis du auf das letzte zeichen: \n stösst ...

for i in var[:-1]:
...

Verfasst: Freitag 11. Juni 2004, 19:02
von Glamdrink
Der Fehler bleibt aber trotzdem

Verfasst: Freitag 11. Juni 2004, 20:49
von Christopy
bei der Funktion quersumme() fehlt ein return!

Verfasst: Freitag 11. Juni 2004, 20:52
von Glamdring
es musste ja sowas einfaches sein :oops:

Danke