栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何不使用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.')


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/651366.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号