Python :: Aufgabe #346 :: Lösung #1

2 Lösungen Lösungen öffentlich
#346

Von eins bis neunhundertneunundneunzig

Anfänger - Python von eisheiliger - 18.04.2021 um 15:43 Uhr
Setze Zahlen in Zahlenworte um und zwar von ‚1 / eins‘ bis ‚999 / neunhundertneunundneunzig‘.
#1
vote_ok
von AlexGroeg (2010 Punkte) - 20.04.2021 um 20:22 Uhr
Quellcode ausblenden Python-Code

bis_9  = ["null","eins", "zwei","drei", "vier", "fünf", "sechs", "sieben", "acht", "neun"]
bis_19 = ["zehn", "elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", "sechzehn", "siebzehn", "achzehn", "neunzehn"]
bis_99 = ["","zehn", "zwanzig", "dreisig", "vierzig", "fünfzig", "sechzig", "siebzig", "achzig", "neunzig"]
ab_100 = ["", "ein", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun"]


def zahl_in_wort(zahl):
    
    wort   = ""
    s_zahl = str(zahl)    
    pos = 0
    
    while pos < len(s_zahl):
        
        if zahl < 10:                   
            wort = bis_9[int(s_zahl[pos])] 
            break
            
        if zahl > 9 and zahl < 20:      
            wort = bis_19[zahl-10] 
            break
        
        if pos == 0 and len(s_zahl) > 1:
            for i in range(10):
                if s_zahl[-1] == str(i) and s_zahl[-1] != '0':
                    wort += ab_100[i] + 'und'      
         
        if pos == 1:
            for i in range(10):
                if s_zahl[-2] == str(i):
                    wort += bis_99[i] 
    
        if pos == 2:
            for i in range(10):
                if s_zahl[-3] == str(i):
                    wort = ab_100[i] + "hundert" + wort

        pos += 1
        
    print(wort)
    
    
zahlen = list(range(1000))    
for i in zahlen:
    zahl_in_wort(i)

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2109711

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.