Code: Alles auswählen
w1 = "null ein zwei drei vier fünf sechs sieben acht neun zehn elf zwölf \
dreizehn vierzehn fünfzehn sechzehn siebzehn achtzehn neunzehn".split()
w2 = "zwanzig dreißig vierzig fünfzig sechzig siebzig achtzig neunzig".split()
def zahl_in_worten(n, s=True, z=False):
if n < 0: raise ValueError
if n == 0 and z: return ""
if n == 1 and s: return "eins"
if n < 20: return w1[n]
if n < 100:
w = w2[(n - 20) // 10]
if n % 10:
w = w1[n % 10] + "und" + w
return w
if n < 1000:
return w1[n // 100] + "hundert" + zahl_in_worten(n % 100, z=True)
if n < 1000000:
return zahl_in_worten(n // 1000, s=False) + "tausend" + zahl_in_worten(n % 1000, z=True)
raise ValueError
print(zahl_in_worten(0))
print(zahl_in_worten(100))
print(zahl_in_worten(1984))
print(zahl_in_worten(2010))
print(zahl_in_worten(999999))