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)) )