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
# -*- 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
