single_digit = [' ', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
ten_digit = ['twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety']
all_digit = [' ', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve',
'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen']
# 将所有小于一百的数字添加到 all_digit中
for j in ten_digit:
for i in single_digit:
a1 = j + ' ' + i
all_digit.append(a1.strip())
def hundred_number3(a_number): #**根据题意,每三个数字为一组 xx hundred (and) fifteen six million xx hundred (and)
fifteen six thousand xx hundred (and) fifteen six 例如 3-6位数:a_thousand + ' thousand ' + a_hundred
6位数以上 a_million + ' million ' + a_thousand + ' thousand ' + a_hundred**
a = int(a_number)
if a >= 100:
b = a // 100 #整除取百位
c = a % 100 # 取余得 十位各位
if c: # 处理 整百的情况
return all_digit[b] + ' hundred ' + 'and ' + all_digit[c]
else:
return all_digit[b] + ' hundred'
else: # 小于一百 直接对应素组下标对应英文
return all_digit[a]
while True:
# key_world = ['million', 'thousand', 'hundred']
try:
b_number = input()
if len(b_number) <= 3:
a_hundred = hundred_number3(b_number)
print(a_hundred)
elif len(b_number) <= 6:
a_thousand = hundred_number3(b_number[0:-3])
a_hundred = hundred_number3(b_number[-3:])
print(a_thousand + ' thousand ' + a_hundred)
else:
a_million = hundred_number3(b_number[0:-6])
a_thousand = hundred_number3(b_number[-6:-3])
a_hundred = hundred_number3(b_number[-3:])
print(a_million + ' million ' + a_thousand + ' thousand ' + a_hundred)
except:
break