将数字缩写为单词Python

将数字缩写为单词Python,python,numbers,short,Python,Numbers,Short,正在寻求有关更改数字输入并将其转换为简短单词的帮助: for instance 4,000,000,000 -> 4 Trillion, ones = ["", "one ","two ","three ","four ", "five ", "six ","seven ","eight ","nine "] tens = ["ten ","eleven ","twelve ","thirteen ", "fourteen ", "fifteen ","sixteen ","sevent

正在寻求有关更改数字输入并将其转换为简短单词的帮助:

for instance 4,000,000,000 -> 4 Trillion, 
ones = ["", "one ","two ","three ","four ", "five ", "six ","seven ","eight ","nine "]
tens = ["ten ","eleven ","twelve ","thirteen ", "fourteen ", "fifteen ","sixteen ","seventeen ","eighteen ","nineteen "]
twenties = ["","","twenty ","thirty ","forty ", "fifty ","sixty ","seventy ","eighty ","ninety "]
thousands = ["","thousand ","million ", "billion ", "trillion ", "quadrillion ", "quintillion ", "sextillion ", "septillion ","octillion ", "nonillion ", "decillion ", "undecillion ", "duodecillion ", "tredecillion ", "quattuordecillion ", "quindecillion", "sexdecillion ", "septendecillion ",  "octodecillion ", "novemdecillion ", "vigintillion "]

def wordNumber(number):
    number = int(number)  

number = str(input("Enter the digits: "))    
print(wordNumber(number))
我完全不知道下一步该去哪里,我在网上看了很多程序,这些程序都是用完整的数字(10)->10来做精确的事情。

图书馆会为您做这些:

>>> humanize.intword(12345591313)
'12.3 billion'

它需要很多代码。您可以这样做:

或者只使用模块。例如:


如果您需要手动执行此操作,下面是一个部分示例,说明如何执行此操作

def f(number):
    ones    =   [
                    "",
                    "one",
                    "two",
                    "three",
                    "four",
                    "five",
                    "six",
                    "seven",
                    "eight",
                    "nine",
                ]
    teens   =   {
                    10:"ten",
                    11:"eleven",
                    12:"twelve",
                    13:"thirteen",
                    14:"fourteen",
                    15:"fifteen",
                    16:"sixteen",
                    17:"seventeen",
                    18:"eighteen",
                    19:"nineteen",
                }
    tens    =   [
                    "",
                    "teen",
                    "twenty",
                    "thirty",
                    "fourty",
                    "fifty",
                    "sizty",
                    "seventy",
                    "eighty",
                    "ninety",
                ]
    hundred =   [ "%shundred" % one for one in ones ]
    place_value   = {1:ones,2:tens,3:hundred}
    number_string = ""
    number        = list(str(number))
    number.reverse()
    number        = [(place+1, int(digit)) for place, digit in enumerate(number)]
    number.reverse()
    number_iter = number.__iter__()
    for place, digit in number_iter:
        print place, digit
        if place == 2 and digit == 1:
            place, digit = number_iter.next()
            number_string += teens[10 + digit]
        else:
            number_string += place_value[place][digit]
        print number_string

这可能行得通,但问题是num2words并非在所有python实例中都可用。从未听说过人性化库。谢谢我会看看是否可以导入。这是目前为止最好的代码,但我不得不走另一条路。你能看到我的下一篇文章吗?我发布了我最近的代码,因为我遇到了困难,在这里:
def f(number):
    ones    =   [
                    "",
                    "one",
                    "two",
                    "three",
                    "four",
                    "five",
                    "six",
                    "seven",
                    "eight",
                    "nine",
                ]
    teens   =   {
                    10:"ten",
                    11:"eleven",
                    12:"twelve",
                    13:"thirteen",
                    14:"fourteen",
                    15:"fifteen",
                    16:"sixteen",
                    17:"seventeen",
                    18:"eighteen",
                    19:"nineteen",
                }
    tens    =   [
                    "",
                    "teen",
                    "twenty",
                    "thirty",
                    "fourty",
                    "fifty",
                    "sizty",
                    "seventy",
                    "eighty",
                    "ninety",
                ]
    hundred =   [ "%shundred" % one for one in ones ]
    place_value   = {1:ones,2:tens,3:hundred}
    number_string = ""
    number        = list(str(number))
    number.reverse()
    number        = [(place+1, int(digit)) for place, digit in enumerate(number)]
    number.reverse()
    number_iter = number.__iter__()
    for place, digit in number_iter:
        print place, digit
        if place == 2 and digit == 1:
            place, digit = number_iter.next()
            number_string += teens[10 + digit]
        else:
            number_string += place_value[place][digit]
        print number_string