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