我正在尝试写一个代码,可以将数字转换成单词,最多可达999万亿。这是我目前为止的代码。它可以工作到119,但之后事情变得一团糟。我不能使用append或enumerate。我被困在如何打印更大的数字上;如何格式化像978674237105这样的数字?在
NUMBERS = ["zero", "one", "two","three","four","five","six","seven","eight","nine",
"ten","eleven","twelve","thirteen","fourteen","fiveteen","sixteen",
"seventeen","eightteen","nineteen"]
TENS = ["", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty",
"ninety"]
HUNNITS = ["","hundred","thousand","million","billion","trillion"]
n = eval(input("What is the number the you want to convert? "))
def convert():
if n >= 20:
tens = n // 10
units = n % 10
if units != 0:
result = TENS[tens] + "-" + NUMBERS[units]
else:
result = TENS[tens]
else:
result = NUMBERS[n]
print (result)
def convert2():
if n >=100:
tens2 = n//100
units2 = n%100
if units2 != 0:
result2 = HUNNITS[tens2] + "-" + TENS[tens2] + "and" + NUMBERS[units2]
else:
result2 = HUNNITS[tens2]
else:
result2 = HUNNITS[n]
print(result2)
def main():
if n >=20 and n< 100:
x = convert()
if n >=100:
y = convert2()
main()
这可以很容易地递归完成:
我不想让你泄气,但这个问题已经解决了。有一个简洁的Python模块来完成这项工作,称为
num2words
这是link to the GitHub repository
和here is the actual script表示英语(它支持多种语言)。在那里你可以得到一些灵感来修改你的脚本,如果仍然需要的话。在
我最初是使用列表和python2为projecteuler编写的。很可能有bug我没有测试太多,但希望它能帮助你
相关问题 更多 >
编程相关推荐