Für die Umwandlung von Zahlen in Worte war mein Code nicht gedacht, denn wie würdest Du damit das machen?Frostie hat geschrieben:Vielen Dank an euch! @Alfons Mittelmeyer, der Code funktioniert, vielen vielen Dank!
einhundertdreiundzwanzigmilliardenvierhundertsechsundfünfzigmillionensiebenhundertneunundachtzigtausendeinhundertdreiundzwanzig
Damit aber geht es:
Code: Alles auswählen
# -*- coding: utf-8 -*-
EINER = ('null','ein','zwei','drei','vier','fünf','sechs','sieben','acht','neun','zehn','elf','zwölf','dreizehn','vierzehn','fünfzehn','sechzehn','siebzehn','achtzehn','neunzehn')
ZEHNER = ('','zehn','zwanzig','dreißig','vierzig','fünfzig','sechzig','siebzig','achtzig','neunzig')
def convert_small_number_to_word(value):
wort = ''
hunderter = value // 100
if hunderter:
wort = EINER[hunderter] + 'hundert'
value %= 100
if value == 0:
return wort
zehner = value // 10
if zehner < 2:
if value == 1:
wort += "eins"
else:
wort += EINER[value]
else:
einer = value % 10
if einer != 0:
wort += EINER[einer]+'und'+ZEHNER[zehner]
else:
wort += ZEHNER[zehner]
return wort
def convert_number_to_word(value):
if value >= 1000000000000:
print("Wert zu hoch")
return False
begin_value = value
wort = ''
if value >= 1000000000:
milliarden = value // 1000000000
if milliarden == 1:
wort = 'einemilliarde'
else:
wort = convert_small_number_to_word(milliarden) + 'milliarden'
value %= 1000000000
if value >= 1000000:
millionen = value // 1000000
if millionen == 1:
wort += 'einemillion'
else:
wort += convert_small_number_to_word(millionen) + 'millionen'
value %= 1000000
if value >= 1000:
tausend = value // 1000
wort += convert_small_number_to_word(tausend) + 'tausend'
value %= 1000
if value == 0 and begin_value != 0:
return wort
wort += convert_small_number_to_word(value)
return wort
while True:
a = input("Zahl: ")
print(convert_number_to_word(a))