我们需要编写一个函数,实现将阿拉伯数字转换为英文数字的功能。下面给出一个示例代码:
def number_to_words(num):
"""
将阿拉伯数字转换为英文数字
"""
# 定义数字和其英文表达的对应关系
ones = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
tens = ['', 'ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety']
teens = ['ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen']
if num < 0 or num > 9999:
return 'number out of range'
if num < 10:
return ones[num]
if num < 20:
return teens[num - 10]
if num < 100:
return tens[num // 10] + ('' if num % 10 == 0 else '-' + ones[num % 10])
if num < 1000:
return ones[num // 100] + ' hundred' + ('' if num % 100 == 0 else ' and ' + number_to_words(num % 100))
if num < 10000:
return ones[num // 1000] + ' thousand' + ('' if num % 1000 == 0 else ' ' + number_to_words(num % 1000))
该函数使用递归思想实现了将4位及以下数字转换为英文数字的功能。下面是一些示例:
num = 145
print(number_to_words(num))
# 输出:one hundred and forty-five
num = 3000
print(number_to_words(num))
# 输出:three thousand
num = 9999
print(number_to_words(num))