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 获取;
如果有,输出“有水仙花数”,如果没有,则输出“没有水仙花数”。
"""
 
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
########## Begin ##########
# 使用for-else判断 n 以内的正数是否含有水仙花数
 
########## End ##########

答案

n = int(input())

########## Begin ##########
for num in range(100, n + 1):
    s = str(num)
    sum_of_cubes = 0
    for digit in s:
        sum_of_cubes += int(digit) ** 3
    if sum_of_cubes == num:
        print("有水仙花数")
        break
else:
    print("没有水仙花数")
########## End ##########

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值