学习-Python循环结构之for…else…之寻找水仙花数
任务描述
本关任务:给定一个整数 n,判断 n 以内的正数是否含有水仙花数。水仙花数是指一个 3 位的整数,它的每个位上的数字的 3 次幂之和等于它本身。
相关知识
针对本关任务,我们可以直接使用循环结构和分支结构语句相配合完成,不过,在这里,将介绍 for-else 语句来完成本关任务。
for-else for-else 语句是 for 循环的一种,它和 break 语句一起使用时才能显示出 else 的作用。下面给出了两个使用 for-else 的例子及其执行结果。
for i in range(10): if i == 5: print( ‘found it! i = %s’ % i) else: print(‘not found it’) 执行结果:
found it! i = 5 not found it 这段代码中,在i=5时使用了break结束了循环 for i in range(10): if i == 5: print( ‘found it! i = %s’ % i) break else: print(‘not found it’) 执行结果:
found it! i = 5 从上述两段代码的运行结果可知,第一段代码并没有使用 break 语句,循环是完整的进行完了的,所以 else 语句中的代码运行了,而在第二段代码中,在 i=5 时使用了 break 结束了循环,所以 else 语句中的代码并没有执行。可以发现,如果循环在运行过程中被中断,则 else 语句不会执行。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。格式化输出的具体要求请查看测试集的预期输出。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧 “测试结果”区查看具体的测试集详情。
开始你的任务吧,祝你成功!
代码
"""
任务:给定一个整数 n,判断 n 以内的正数是否含有水仙花数,n 通过 input 获取;
如果有,输出“有水仙花数”,如果没有,则输出“没有水仙花数”。
"""
n = int(input())
for i in range(100,n):
x = int(i/100)
y = int(i/10) - x*10
z = i - x*100 - y*10
H=pow(x,3)+pow(y,3)+pow(z,3)
if H==i:
print('有水仙花数')
break
else:
print('没有水仙花数')
|