编写一个 Python 程序,将用户输人的一个 1~999 的整数转换成其对应的英文 表示,例如,729 将被转换成 seven hundred and twenty r nine。 要求,在程序中尽可能地便 用西数封装一些常用的转换,不得少于3个函数。
时间: 2024-05-14 10:14:32 浏览: 116
以下是一个可能的实现:
```python
def number_to_words(num):
if num == 0:
return "zero"
elif num < 0:
return "minus " + number_to_words(abs(num))
small_numbers = ["", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine",
"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen",
"seventeen", "eighteen", "nineteen"]
tens = ["", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"]
if num < 20:
return small_numbers[num]
elif num < 100:
return tens[num // 10] + " " + small_numbers[num % 10]
elif num < 1000:
hundreds = num // 100
remaining = num % 100
if remaining == 0:
return small_numbers[hundreds] + " hundred"
else:
return small_numbers[hundreds] + " hundred and " + number_to_words(remaining)
num = int(input("Enter a number between 1 and 999: "))
print(number_to_words(num))
```
这个程序定义了一个名为 `number_to_words` 的函数,该函数接受一个整数参数,并返回该整数对应的英文表示。该函数使用了两个列表 `small_numbers` 和 `tens`,分别表示 0~19 和 20~90 的数字的英文表示。在主程序中,程序会提示用户输入一个整数,并将该整数传递给 `number_to_words` 函数进行转换。
阅读全文