<p>您可以通过以下步骤解决此问题:</p>
<ol>
<li>将数字键更改为11、12、14…等</li>
<li>添加条件检查十位数,如果是1,则<code>print numbers_teens[num[0]+num[1]]</code></li>
</ol>
<p>我不明白你为什么需要另一个<code>numbers_teeens</code>(带3个e)</p>
<p>我应用了这些更改,请尝试以下代码:</p>
<pre><code>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 '}
# 1- changed keys in numbers_teens:
numbers_teens = {'0': '','11': 'Eleven ', '12': 'Twelve ', '13': 'Thirteen ',
'14': 'Fourteen ', '15': 'Fifteen ', '16': 'Sixteen ', '17': 'Seventeen ',
'18': 'Eighteen ', '19': 'Nineteen '}
# removed number_teeens from here
#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() + ''})
if p == 1:
print numbers[num]
if p == 2:
# 2- condition to check if tens digits == '1'
if num[0] == '1':
# print numbers_teens[the concatenation of the two digits]
print numbers_teens[num[0]+num[1]]
# if it is not == '1'
else:
print tens[num[0]] + numbers[num[1]]
if p == 3:
# check if tens digits == '1'
if num[1] == '1':
print numbers_hundreds[num[0]] + numbers_teens[num[1]+num[2]]
else:
print numbers_hundreds[num[0]] + tens[num[1]] + numbers[num[2]]
if p == 4:
# check if tens digits == '1'
if num[2] == '1':
print numbers_thousands[num[0]]+ numbers_hundreds[num[1]] + numbers_teens[num[2]+num[3]]
else:
print numbers_thousands[num[0]]+ numbers_hundreds[num[1]] + tens[num[2]] + numbers[num[3]]
if p == 5:
# check if tens digits == '1'
if num[3] == '1':
print numbers_ten_thousands[num[0]] + numbers_thousands[num[1]]+ numbers_hundreds[num[2]] + numbers_teens[num[3]+num[4]]
else:
print numbers_ten_thousands[num[0]] + numbers_thousands[num[1]]+ numbers_hundreds[num[2]] + tens[num[3]] + numbers[num[4]]
if p == 6:
# check if tens digits == '1'
if num[4] == '1':
print numbers_hundred_thousands[num[0]] + numbers_ten_thousands[num[1]] + numbers_thousands[num[2]]+ numbers_hundreds[num[3]] + numbers_teens[num[4]+num[5]]
else:
print numbers_hundred_thousands[num[0]] + numbers_ten_thousands[num[1]] + numbers_thousands[num[2]]+ numbers_hundreds[num[3]] + tens[num[4]] + numbers[num[5]]
</code></pre>
<p>现在当输入=112<br/>
输出为:<code>One Hundred Twelve</code></p>