leider will mir nicht einläuchten wie es hier weitergehen soll.
Ist ein Programm aus Python for Kids. Leider ist der Lösungsvorschlag aus dem Buch unvollständig.
Hier mal die Fehlermeldung:
Code: Alles auswählen
imp.reload (zahleingabe)
Welche Zahl zwischen 1 und 1000 soll ich ausschreiben?234
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/....../python/python3/kap05/zahleingabe.py", line 61, in <module>
zahlwort(zahl)
File "/home/...../python/python3/kap05/zahleingabe.py", line 53, in zahlwort
else: print (h+'hundert'+e+'und'+z)
UnboundLocalError: local variable 'z' referenced before assignment
Hier mal der Code und schon mal Danke für die Mühe im voraus:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
def zahlwort(zahl):
hundert = zahl // 100 #Hunderterstellen: Ergebnis der Ganzahldivision
# von zahl durch 100
if hundert == 0: h = ""
elif hundert == 1: h = "ein"
elif hundert == 2: h = "zwei"
elif hundert == 3: h = "drei"
elif hundert == 4: h = "vier"
elif hundert == 5: h = "fuenf"
elif hundert == 6: h = "sechs"
elif hundert == 7: h = "sieben"
elif hundert == 8: h = "acht"
elif hundert == 9: h = "neun"
einer = zahl % 10 #Einerstellen: Rest bei der Division von zahl durch 10
if einer == 1: e = "ein"
elif einer == 2: e = "zwei"
elif einer == 3: e = "drei"
elif einer == 4: e = "vier"
elif einer == 5: e = "fuenf"
elif einer == 6: e = "sechs"
elif einer == 7: e = "sieben"
elif einer == 8: e = "acht"
elif einer == 9: e = "neun"
zehner = zahl // 10 #Zehnerstelle: Ergebnis der Ganzzahldivision
# von zahl durch 10
if zehner == 0: z =""
elif zehner == 1: z = "zehn"
elif zehner == 2: z = "zwanzig"
elif zehner == 3: z = "dreissig"
elif zehner == 4: z = "vierzig"
elif zehner == 5: z = "fuenfzig"
elif zehner == 6: z = "sechzig"
elif zehner == 7: z = "siebzig"
elif zehner == 8: z = "achtzig"
elif zehner == 9: z = "neunzig"
if zahl == 1: print('eins')
elif zahl == 11: print('elf')
elif zahl == 12: print('zwoelf')
elif zahl < 10: print (e)
elif zahl >= 10 and zahl <= 19: print (e+z)
elif zahl >= 20 and zahl <= 99: print (e+'und'+z)
else: print (h+'hundert'+e+'und'+z)
frage= 'Welche Zahl zwischen 1 und 1000 soll ich ausschreiben?'
zahl = input(frage)
zahl = int(zahl)
zahlwort(zahl)
Gutschy