def fun(i): #**********Program********** if a=i//100 b=i//10%10 c=i%10 a**a+b**b+c**c=i #********** End ********** def main(): print("【请连续判断四次输入的三位数是否为水仙花数:】") for n in range(4): print("【第%d次:】" %(n+1)) a = int(input("【请输入一个三位数,并按回车确认:】")) flag=fun(a); if flag: print("%d是【水仙花数】" %a); else: print("%d不是【水仙花数】" %a); if __name__ == '__main__': main()
时间: 2023-07-23 08:01:36 浏览: 113
输入一个三位数,判断它是否是水仙花数
4星 · 用户满意度95%
您好!关于您的代码,有几个问题需要注意和修正:
1. 在函数 `fun` 中,`if` 语句的条件判断应该使用双等号 `==` 而不是单等号 `=`。所以应该改为 `if a == i//100`。
2. 在 `if` 语句下方的代码块中,等式 `a**a+b**b+c**c=i` 是错误的。应该使用等号 `==` 进行等式判断,而不是赋值操作。所以应该改为 `if a**a+b**b+c**c == i`。
3. 函数 `fun` 没有返回值。根据代码逻辑,当 `if` 语句成立时应该返回 `True`,否则返回 `False`。所以需要在函数末尾添加 `return True` 和 `return False`。
修改后的代码如下所示:
```python
def fun(i):
#**********Program**********
if a == i//100:
b = i//10%10
c = i%10
if a**a + b**b + c**c == i:
return True
return False
def main():
print("【请连续判断四次输入的三位数是否为水仙花数:】")
for n in range(4):
print("【第%d次:】" %(n+1))
a = int(input("【请输入一个三位数,并按回车确认:】"))
flag = fun(a)
if flag:
print("%d是【水仙花数】" %a)
else:
print("%d不是【水仙花数】" %a)
if __name__ == '__main__':
main()
```
希望对您有所帮助!如果您有任何其他问题,请随时提问。
阅读全文