Python判断水仙花数,能捕捉错误,使用三个函数
时间: 2023-06-07 16:08:17 浏览: 184
好的,我可以为您提供一些帮助。以下是一个Python程序,可以通过三个函数来判断水仙花数,并且具有错误捕捉功能:
```
def is_number(num):
try:
num = int(num)
return True
except ValueError:
return False
def is_narcissistic(num):
if not is_number(num):
return False
digits = [int(d) for d in str(num)]
n = len(digits)
return num == sum(digit**n for digit in digits)
def main():
num = input("请输入一个数:")
if is_narcissistic(num):
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
if __name__ == "__main__":
main()
```
程序包含三个函数:
1. `is_number`: 判断输入是否为数字,如果输入为数字则返回True,否则返回False。使用try-except语句捕捉输入时的错误。
2. `is_narcissistic`: 判断一个数是否为水仙花数。如果输入不是数字,则返回False。使用列表推导式将输入的数字拆分成若干个数位,然后根据水仙花数的定义计算幂数和。如果计算结果与原数相等,则返回True,否则返回False。
3. `main`: 程序的主函数。首先要求输入一个数,然后调用`is_narcissistic`函数判断该数是否为水仙花数,并输出判断结果。
希望这能帮助到您!如果您有更多问题,请随时提出。
阅读全文