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]