《python核心编程第二版》第六章课后练习题
6–8.
列表.给出一个整数值,返回代表该值的英文,
比如输入 89 返回”eight-nine”。
附加题:
。本练习中的值限定在家 0
能够返回符合英文语法规则的形式,比如输入“89”返回“eighty-nine”
到 1,000.
code:
#!/usr/bin/env python def get(): input=raw_input('enter a num>') if input.isdigit(): if int(input)>0 and int(input)<1000: if input[0]=='0': print 'not start with 0' return get() else: return input else: print 'out of range' return get() else: print 'enter error,must be a number' return get() l1={'1':'one','2':'two','3':'three','4':'four','5':'five','6':'six','7':'seven','8':'eight','9':'nine'} l2={'1':'ten','2':'twenty','3':'thirty','4':'forty','5':'fifty','6':'sixty','7':'seventy','8':'eighty','9':'ninety'} def trans(): length=len(g) if length==1: return l1[g] elif length==2: num1=l2[g[0]] if g[1]=='0': return num1 else: num2=l1[g[1]] return num1+'-'+num2 else: num1=l1[g[0]]+'thundred' if g[1]!='0': num2=l2[g[1]] else: num2='' if g[2]!='0': num3=l1[g[2]] else: num3='' if num2=='' and num3=='': return num1 elif num2=='' and num3!='': return num1+'-'+num3 elif num2!='' and num3=='': return num1+'-'+num2 else: return num1+'-'+num2+'-'+num3 while True: g=get() res=trans() print res