用python实现一个程序功能,程序运行后等待用户输入一个水仙花数,如果输入了一个正确的数,打印“输入成功”,结束程序运行。如果用户输入的不是水仙花数,则重复提示用户输入一个正确的数。 提示:1.如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。
时间: 2024-10-21 19:17:50 浏览: 31
在Python中,我们可以创建一个简单的命令行程序来实现这个功能。首先,我们需要编写一个函数来检查一个数是否是水仙花数,然后在主循环中不断获取用户的输入,直到用户输入的是一个有效的水仙花数。以下是相应的代码:
```python
def is_water_lily_number(num):
if len(str(num)) != 3: # 检查是否是三位数
return False
digits = [int(digit) for digit in str(num)] # 将数字转换成列表并提取各个位
return sum(digits**3) == num # 计算每位立方和并判断是否相等
while True:
try:
input_num = int(input("请输入一个三位数(输入-1退出):"))
if input_num == -1:
print("输入成功,程序已退出。")
break
elif is_water_lily_number(input_num):
print("输入成功,这是一个水仙花数。")
break
else:
print("这不是一个水仙花数,请重新输入。")
except ValueError:
print("输入无效,请输入一个整数。")
```
在这个程序中,我们首先定义了一个`is_water_lily_number`函数,用于检查输入的数是否是水仙花数。接着,在一个无限循环中,我们请求用户输入一个整数,如果用户输入 `-1`,则退出程序;否则,我们会验证输入是否是水仙花数,并给出相应提示。
阅读全文