回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我能够使这个函数在某些情况下将整数转换为单词,但当输入大于120时仍然有问题;对于121122、、、和任何大于..20的值,即221233等。。它返回100 None(对于120以上的情况)。如果输入超过1020,它将不起作用。你知道吗</p>
<pre><code>def int_to_word(n):
d={0:'zero',1:'one',2:'two',3:'three',4:'four',5:'five',
6:'six',7:'seven',8:'eight',9:'nine',10:'ten',
11:'eleven',12:'twelve',13:'thirteen',14:'fourteen',
15:'fifteen',16:'sixteen',17:'seventeen',18:'eighteen',
19:'nineteen',20:'twenty',30:'thirty',40:'forty',
50:'fifty',60:'sixty',70:'seventy',80:'eighty',
90:'ninety'}
k=1000
m=k*1000
if (n <20):
print(d.get(n))
elif (n >=20 and n <100):
if n%10==0:
print(d.get(n))
else:
print(d.get(n//10*10),d.get(n%10),end="")
elif (n>=100) and (n<k):
if n%100==0:
print(d[n//100],end=" ")
print("hundred")
else :
print(d.get(n//100),"hundred",d.get(n%100),end="")
elif (n>=k)and (n<m):
if n%k==0:
print(d.get(n//k),end=" ")
print("thousand")
else:
print(d.get(n//k),end=" ")
print("thousand",end=" ")
print(d.get(n%k))
int_to_word(n)
</code></pre>