Python :: Aufgabe #346 :: Lösung #2
 
                       
        2 Lösungen
         
         
        
      
                
       
        
      #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‘.
                                         
           
                     
        
           
           
        
           
        
        
        
        
        
        
        
        
        
      
           
    #2
 
                 
        von AlexGroeg (2010 Punkte)
         - 25.04.2021 um 19:59 Uhr
       Python-Code
 Python-Code
#346
'''
Von eins bis neunhundertneunundneunzig
Anfänger - Pythonvon eisheiliger - Gestern 18.04.2021 um 15:43 Uhr
Setze Zahlen in Zahlenworte um und zwar von ‚1 / eins‘ bis ‚999 / neunhundertneunundneunzig‘.
'''
#zahl = '2'  #input("Enter a value: ")
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 "]
bis_9  = ["", "ein", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun"]
def zahl2wort(zahl):
    wort = ""
    pos = len(zahl)
    
    while pos > 0:
        if zahl == '1':
            wort = "eins"
            break
        
        if zahl == "0":  
            wort = "null"
            break
        elif pos > 1 and zahl[pos -2] == "1":
            for i in range(0,10):
                if zahl[pos - 1] == str(i):
                    wort = bis_19[i] + wort
            if pos == 2:
                break
        else:
            for i in range(0,10):
                if zahl[pos - 1] == str(i):
                    wort = bis_9[i] + wort
                    
        if pos > 1 and zahl[pos -2] != "1":
            for i in range(1,10):
                if zahl[pos - 2] == str(i):
                    if zahl[pos -1] == '0':
                        wort = wort + bis_99[i]
                    else:
                        wort = wort + ' und ' + bis_99[i]
                           
        if pos > 2:
            for i in range(0,10):
                if zahl[pos - 3] == str(i):
                    if wort == 'ein':
                        wort = 'eins'                    
                    wort = bis_9[i] + ' hundert ' + wort
        
        pos = pos - 3
        
    return wort
    
liste = range(1000)
for zahl in liste:
    print( zahl2wort(str(zahl)) )
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
          
          
                 Seite 1 von 0
          
                 1
          
          
             
       
    
    
    

 
    
    
    