Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Zahlenwörter in Python in ganze Zahlen umwandeln?

Wie kann ich Zahlenwörter in Python in ganze Zahlen umwandeln?

Patricia Arquette
Freigeben: 2024-11-20 18:44:20
Original
854 Leute haben es durchsucht

How Can I Convert Number Words to Integers in Python?

Zahlenwörter in ganze Zahlen umwandeln

Oft besteht die Notwendigkeit, als Text ausgedrückte Zahlenwörter umzuwandeln (z. B. „eins“, „zwei“) ") in ihre entsprechenden ganzzahligen Werte.

Lösung:

Um diese Konvertierung zu erleichtern, wird eine Python-Funktion namens text2int eingeführt, die ein umfassendes Wörterbuch von Zahlenwörtern verwendet ( numwords), um Textdarstellungen ganzen Zahlen zuzuordnen. Hier ist die Implementierung:

def text2int(textnum, numwords={}):
    if not numwords:
        # Initialize the numwords dictionary only on the first call
        units = [
            "zero", "one", "two", "three", "four", "five", "six", "seven", "eight",
            "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen",
            "sixteen", "seventeen", "eighteen", "nineteen",
        ]

        tens = ["", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"]

        scales = ["hundred", "thousand", "million", "billion", "trillion"]

        numwords["and"] = (1, 0)
        for idx, word in enumerate(units):    numwords[word] = (1, idx)
        for idx, word in enumerate(tens):     numwords[word] = (1, idx * 10)
        for idx, word in enumerate(scales):   numwords[word] = (10 ** (idx * 3 or 2), 0)

    current = result = 0
    for word in textnum.split():
        if word not in numwords:
            raise Exception("Illegal word: " + word)

        scale, increment = numwords[word]
        current = current * scale + increment
        if scale > 100:
            result += current
            current = 0

    return result + current
Nach dem Login kopieren

Beispiel:

Betrachten Sie die folgende Eingabe: „sieben Milliarden einhundert Millionen einunddreißigtausenddreihundertsiebenunddreißig“

print text2int("seven billion one hundred million thirty one thousand three hundred thirty seven")  # 7100031337
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Zahlenwörter in Python in ganze Zahlen umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage