Python :: Aufgabe #276 :: Lösung #1

4 Lösungen Lösungen öffentlich
#276

Zahlen in Wörtern ausdrücken

Anfänger - Python von Gisbert5020 - 30.04.2020 um 15:17 Uhr
Schreiben Sie ein Programm, das Zahlen von 0 bis 99 in Wörtern fasst.
Zusatzaufgabe : Erweitern Sie das Programm von 0 bis 1000.
#1
1x
vote_ok
von torstenkn (150 Punkte) - 02.05.2020 um 00:00 Uhr
Einmal eine mögliche Lösung unter Verwendung von Rekursion (Methode ruft sich selbst auf um bei Zahlen über 100 die Wörter der letzten beiden Ziffern zu finden).

Quellcode ausblenden Python-Code
numberWord = {0: "null", 1: "ein", 2: "zwei", 3: "drei", 4: "vier",
              5: "fünf", 6: "sechs", 7: "sieben", 8: "acht",
              9: "neun", 10: "zehn", 11: "elf", 12: "zwölf",
              17: "siebzehn", 20: "zwanzig", 30: "dreißig", 40: "vierzig",
              50: "fünfzig", 60: "sechzig", 70: "siebzig",
              80: "achtzig", 90: "neunzig",
              100: "einhundert", 1000: "eintausend" }

def getNumberAsWord(number):
    if number == 1:
        return "eins"
    elif number == 0 or (number > 1 and number < 13) or number == 17 or (len(str(number)) == 2 and int(str(number)[1]) == 0) or number == 100 or number == 1000:
        return numberWord[number]
    elif number > 12 and number < 20:
        return numberWord[int(str(number)[1])] + numberWord[10 * int(str(number)[0])]
    elif number > 20 and number < 100:
        return numberWord[int(str(number)[1])] + "und" + numberWord[10 * int(str(number)[0])]
    elif number > 100 and number < 1000:
        return numberWord[int(str(number)[0])] + "hundert" + getNumberAsWord(int(str(number)[1:3]))
    
for i in range(1, 299):
    print(getNumberAsWord(i))

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
1996398

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.