《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