学习-Python循环结构之for…else…之寻找水仙花数

     学习-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 语句不会执行。
代码:
i= int(input())
for num in range(2,i):
a = num % 10
b =(( num -a)/10)%10
c = (num - b* 10 - a) /100
#print(‘num’, num)
#print(a)
#print(b)
#print©
if num == a3 + b3 + c**3:
print(“有水仙花数”)
break
else: num+=num
else:
print(‘没有水仙花数’)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值