Fehler bei quersumme programmiert, aber seit nem jahr nurnoc

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Glamdring
User
Beiträge: 104
Registriert: Sonntag 25. Mai 2003, 20:22
Wohnort: Freiburg i.B.
Kontaktdaten:

Donnerstag 10. Juni 2004, 21:16

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
Dies ist ein Platzhalter, er steht am Ende jeder meiner Beiträge! Erst wenn ich einen vernünftigen Text gefunden habe wird sich das ändern!
Seb

Freitag 11. Juni 2004, 00:14

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]:
...
Glamdrink

Freitag 11. Juni 2004, 19:02

Der Fehler bleibt aber trotzdem
Christopy
User
Beiträge: 131
Registriert: Montag 15. Dezember 2003, 22:39

Freitag 11. Juni 2004, 20:49

bei der Funktion quersumme() fehlt ein return!
Glamdring
User
Beiträge: 104
Registriert: Sonntag 25. Mai 2003, 20:22
Wohnort: Freiburg i.B.
Kontaktdaten:

Freitag 11. Juni 2004, 20:52

es musste ja sowas einfaches sein :oops:

Danke
Dies ist ein Platzhalter, er steht am Ende jeder meiner Beiträge! Erst wenn ich einen vernünftigen Text gefunden habe wird sich das ändern!
Antworten