数字(3位数)转换为Python中的单词

时间:2017-10-05 02:47:17

标签: python

  

所以这是我的主程序,我可以在0到100之间进行数字转换,但是,如果输入的数字大于100,它将显示'键错误'。 :-(

s = int(input('Give me a 3-digit number: '))

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 : 'ninteen'}

e = {20 : 'twenty', \
     30 : 'thirty', 40 : 'fourth', 50 : 'fifty', 60 : 'sixty', \
     70 : 'seventy', 80 : 'eighty', 90 : 'ninty' }

b = {100 : 'one hundred', 200 : 'two hundred', 300 : 'three hundred', \
     400 : 'four hundred', 500 : 'five hundred', 600 : 'six hundred', \
     700 : 'seven hundred', 800 : 'eight hundred', 900 : 'nine hundred'}

'''int -> str'''
def convert_number(s):
    if s <= 19:
        return(d[s])
    if s == 20:
        return(e[s])
    if s >20 and s < 100 :
        return(e[(s//10)*10] +' '+ d[(s%10)])
    if s == 100:
        return(b[s])
    if s > 100:
        return(b[(s//100)*100] +' '+e[((s-b[s])//10)*10]+' '+d[(s%10)])

print(convert_number(s))

0 个答案:

没有答案