Python :: Aufgabe #276 :: Lösung #3
4 Lösungen
#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.
Zusatzaufgabe : Erweitern Sie das Programm von 0 bis 1000.
#3
von Nachbar (2820 Punkte)
- 27.05.2020 um 20:58 Uhr
Python-Code
# -*- coding: utf-8 -*- single = {"0":"null", "1":"eins", "2":"zwei", "3":"drei", "4":"vier", "5":"fünf", "6":"sechs", "7":"sieben", "8":"acht", "9":"neun"} teens = {"10":"zehn", "11":"elf", "12":"zwölf", "13":"dreizehn", "14":"vierzehn", "15":"fünfzehn", "16":"sechzehn", "17":"siebzehn", "18":"achtzehn", "19":"neunzehn"} tenner = {"2":"zwanzig", "3":"dreißig", "4":"vierzig", "5":"fünfzig", "6":"sechzig", "7":"siebzig", "8":"achtzig", "9":"neunzig"} n = input("Zahl: ") # 0 bis 99 def two_digit(n): # 1 - 9 if len(n) == 1: output = single.get(n) elif len(n) == 2: # 01, 02, ..., 09 abfangen if n[0] == "0": return # 10 - 19 elif n[0] == "1": output = teens.get(n) # 20, 30, ..., 90 elif n[1] == "0": output = tenner.get(n[0]) else: # 21, 31, ..., 91 if n[1] == "1": output = "einund" + tenner.get(n[0]) # alle anderen else: output = single.get(n[1]) + "und" + tenner.get(n[0]) return output # 100 bis 999 if len(n) == 3: last_two = two_digit(n[1:]) # 100 if n == "100": output = "einhundert" # 200, 300, ..., 900 elif n[0] != "1": output = single.get(n[0]) + "hundert" # 101 - 109 elif n[0] == "1" and n[1] == "0": output = single.get(n[0])[:-1] + "hundert" + single.get(n[2]) elif n[1] == "0": output = single.get(n[0]) + "hundert" + single.get(n[2]) else: # 110 - 999 if n[0] == "1": output = single.get(n[0])[:-1] + "hundert" + last_two elif n[0] != "1": output = single.get(n[0]) + "hundert" + last_two else: output = two_digit(n) print(output)
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1