我写了一个代码把数字翻译成文本:
num = raw_input("Insert a number > ")
numbers = {'0': '', '1': 'One ', '2': 'Two ', '3': 'Three ', '4': 'Four ',
'5': 'Five ', '6': 'Six ', '7': 'Seven ', '8': 'Eight ', '9': 'Nine '}
tens = {'0': '', '1': 'Ten ', '2': 'Twenty ', '3': 'Thirty ', '4': 'Forty ',
'5': 'Fifty ', '6': 'Sixty ', '7': 'Seventy ', '8': 'Eighty ', '9': 'Ninety '}
numbers_teens = {'0': '','1': 'Eleven ', '2': 'Twelve ', '3': 'Thirteen ',
'4': 'Fourteen ', '5': 'Fifteen ', '6': 'Sixteen ', '7': 'Seventeen ',
'8': 'Eighteen ', '9': 'Nineteen '}
numbers_teeens = {'0' : '', '1': 'One', '2': 'Two', '3': 'Three', '4': 'Four',
'5': 'Five', '6': 'Six', '7': 'Seven', '8': 'Eight', '9': 'Nine',
'11': 'Eleven', '12': 'Twelve', '13': 'Thirteen', '14': 'Fourteen',
'15': 'Fifteen', '16': 'Sixteen', '17': 'Seventeen', '18': 'Eighteen',
'19': 'Nineteen'}
numbers_hundreds = {}
numbers_thousands = {}
numbers_ten_thousands = {}
numbers_teen_thousands = {}
numbers_hundred_thousands = {}
#Creates dicts
for k,v in numbers.items():
numbers_hundreds.update({k: v.title() + 'Hundred '})
if k == 0:
numbers_hundreds.update({k: v.title() + ''})
if '0' in numbers_thousands:
numbers_thousands.update({k: v.title() + ''})
numbers_thousands.update({k: v.title() + 'Thousand, '})
for k1,v1 in tens.items():
numbers_ten_thousands.update({k1: v1.title()})
for kt,vt in numbers_teens.items():
numbers_teen_thousands.update({kt: vt.title() + 'Thousand '})
if kt == 0:
numbers_teen_thousands.update({kt: vt.title() + ''})
for k2,v2 in numbers_hundreds.items():
numbers_hundred_thousands.update({k2: v2.title() + ''})
p = len(num)
i = p - 2
if p == 1:
print numbers[num]
if p == 2:
print tens[num[0]] + numbers_teeens[num[1]]
if p == 3:
print numbers_hundreds[num[0]] + tens[num[1]] + numbers_teeens[num[2]]
if p == 4:
print (numbers_thousands[num[0]] + numbers_hundreds[num[1]] + tens[num[2]]
+ numbers_teeens[num[3]])
if p == 5:
print (numbers_ten_thousands[num[0]] + numbers_thousands[num[1]]
+ numbers_hundreds[num[2]] + tens[num[3]] + numbers_teeens[num[4]])
if p == 6:
print (numbers_hundred_thousands[num[0]] + numbers_ten_thousands[num[1]]
+ numbers_thousands[num[2]]+ numbers_hundreds[num[3]] + tens[num[4]]
+ numbers_teeens[num[5]])
但是当我的输入是112
时,我的输出是One Hundred Ten Two
,(所有青少年都是如此,{11,12,13,14,15,16,17,18,19}
)。应该是One Hundred Eleven
,但我不知道怎么做。。。你知道吗
试试这个:
只适用于小于999999的数字。你知道吗
您可以参考
two_numbers()
来修改代码。你知道吗您可以通过以下步骤解决此问题:
print numbers_teens[num[0]+num[1]]
我不明白你为什么需要另一个
numbers_teeens
(带3个e)我应用了这些更改,请尝试以下代码:
现在当输入=112
输出为:
One Hundred Twelve
相关问题 更多 >
编程相关推荐