Python :: Aufgabe #346
2 Lösungen
Von eins bis neunhundertneunundneunzig
Anfänger - Python
von eisheiliger
- 18.04.2021 um 15:43 Uhr
Setze Zahlen in Zahlenworte um und zwar von ‚1 / eins‘ bis ‚999 / neunhundertneunundneunzig‘.
Lösungen:
bis_9 = ["null","eins", "zwei","drei", "vier", "fünf", "sechs", "sieben", "acht", "neun"]
bis_19 = ["zehn", "elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", "sechzehn", "siebzehn", "achzehn", "neunzehn"]
bis_99 = ["","zehn", "zwanzig", "dreisig", "vierzig", "fünfzig", "sechzig", "siebzig", "achzig", "neunzig"]
ab_100 = ["", "ein", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun"]
def zahl_in_wort(zahl):
wort = ""
s_zahl = str(zahl)
pos = 0
while pos < len(s_zahl):
if zahl < 10:
wort = bis_9[int(s_zahl[pos])]
break
if zahl > 9 and zahl < 20:
wort = bis_19[zahl-10]
break
if pos == 0 and len(s_zahl) > 1:
for i in range(10):
if s_zahl[-1] == str(i) and s_zahl[-1] != '0':
wort += ab_100[i] + 'und'
if pos == 1:
for i in range(10):
if s_zahl[-2] == str(i):
wort += bis_99[i]
if pos == 2:
for i in range(10):
if s_zahl[-3] == str(i):
wort = ab_100[i] + "hundert" + wort
pos += 1
print(wort)
zahlen = list(range(1000))
for i in zahlen:
zahl_in_wort(i)
#346
'''
Von eins bis neunhundertneunundneunzig
Anfänger - Pythonvon eisheiliger - Gestern 18.04.2021 um 15:43 Uhr
Setze Zahlen in Zahlenworte um und zwar von ‚1 / eins‘ bis ‚999 / neunhundertneunundneunzig‘.
'''
#zahl = '2' #input("Enter a value: ")
bis_19 = ["zehn", "elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", "sechzehn", "siebzehn", "achzehn", "neunzehn"]
bis_99 = ["", "zehn ", "zwanzig ", "dreisig ", "vierzig ", "fünfzig ", "sechzig ", "siebzig ", "achzig ", "neunzig "]
bis_9 = ["", "ein", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun"]
def zahl2wort(zahl):
wort = ""
pos = len(zahl)
while pos > 0:
if zahl == '1':
wort = "eins"
break
if zahl == "0":
wort = "null"
break
elif pos > 1 and zahl[pos -2] == "1":
for i in range(0,10):
if zahl[pos - 1] == str(i):
wort = bis_19[i] + wort
if pos == 2:
break
else:
for i in range(0,10):
if zahl[pos - 1] == str(i):
wort = bis_9[i] + wort
if pos > 1 and zahl[pos -2] != "1":
for i in range(1,10):
if zahl[pos - 2] == str(i):
if zahl[pos -1] == '0':
wort = wort + bis_99[i]
else:
wort = wort + ' und ' + bis_99[i]
if pos > 2:
for i in range(0,10):
if zahl[pos - 3] == str(i):
if wort == 'ein':
wort = 'eins'
wort = bis_9[i] + ' hundert ' + wort
pos = pos - 3
return wort
liste = range(1000)
for zahl in liste:
print( zahl2wort(str(zahl)) )
