如何不使用num2word库将数字转换为单词?

如何不使用num2word库将数字转换为单词?,第1张

如何不使用num2word库将数字转换为单词?

您的第一条陈述逻辑不正确。除非等于

Number
或小于1,否则该语句 始终为 True;否则,该语句 始终为 True。200也大于1。

and
改用,并
1
在可接受的值中包括:

if (Number >= 1) and (Number <= 19):

您也可以使用链接:

if 1 <= Number <= 19:

对于20或更大的数字,可使用

divmod()
来获得十位数和余数

tens, remainder = divmod(Number, 10)

演示:

>>> divmod(42, 10)(4, 2)

然后使用这些值从各个部分构建您的数字:

return num2words2[tens - 2] + '-' + num2words1[below_ten]

不要忘记考虑数字大于20且divmod *** 作没有余数的情况:

return num2words2[tens - 2] + '-' + num2words1[remainder] if remainder else num2words2[tens - 2]

全部放在一起:

def number(Number):    if 0 <= Number <= 19:        return num2words1[Number]    elif 20 <= Number <= 99:        tens, remainder = divmod(Number, 10)        return num2words2[tens - 2] + '-' + num2words1[remainder] if remainder else num2words2[tens - 2]    else:        print('Number out of implemented range of numbers.')


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5653507.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存