wdcsx 发表于 2015-12-15 13:19:44

python核心编程第六章第八题

题目:使用列表,编写将0~1000范围的数字翻译为英文的程序,例如输入89,输出eighty-nine。


#!/usr/bin/env python
'''numbers to english'''

#for less than 21
list1=['zero','one','two','three','four','five','six','seven','eight','nine',
       'ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen',
       'seventeen','eighteen','nineteen','twenty']
#for second bit
list2=['','','twenty','thirty','forty','fifty',
       'sixty','seventy','eighty','ninety','hundred']
#for 1000
list3=['','one thousand']

#filter th input
def num_input():
    while True:
      num=raw_input('Enter a number in 0~1000: ')
      num=num.strip()
      if num=='':
            print 'no value'
            continue
      try:
            num2=int(num)
      except Exception:
            print 'TypeError'
            continue
      if num21000:
            print 'over range'
      else:
            break
    return num

#translate number to english
def translate(num):
    n1=int(num)
    if n1=0: #one word
      r1=list1[n1] #use index
      return r1
    elif n1>20 and n1=100 and n1
页: [1]
查看完整版本: python核心编程第六章第八题