您的第一条陈述逻辑不正确。除非等于
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.')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)