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

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

"""
任务:给定一个整数 n,判断 n 以内的正数是否含有水仙花数,n 通过 input 获取;
如果有,输出“有水仙花数”,如果没有,则输出“没有水仙花数”。
"""
 
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
########## Begin ##########
# 使用for-else判断 n 以内的正数是否含有水仙花数
# // " 表示整数除法,返回不大于结果的一个最大的整数
n = int(input())
for i in range(100,n) :
    a = i % 10
    b = i%100//10
    c = i//100
    if (a**3+b**3+c**3 == i):
        print("有水仙花数")
        break
else:
    print("没有水仙花数")
########## End ##########

 须知:for-else语句(其实还有break)

        当循环内部没有break时,上述程序的两个输出都会输出。

        如果循环在运行过程中被中断,则 else 语句不会执行。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 好的,下面是回复: 寻找水仙花数一个常见的编程练习题目,使用for…else…循环结构可以很好地解决这个问题。具体实现方法如下: 1. 首先,我们需要明确什么是水仙花数水仙花数一个三位数,其各位数字的立方和等于该数本身。例如,153就是一个水仙花数,因为1³+5³+3³=153。 2. 接下来,我们可以使用for循环来遍历所有的三位数,即从100到999。在每次循环中,我们可以将当前的数字拆分成个位、十位和百位,并计算它们的立方和。 3. 如果计算结果等于当前的数字,那么说明这个数字是一个水仙花数,我们可以打印出来。如果for循环正常结束,即没有找到任何水仙花数,那么我们可以使用else语句来输出一条提示信息。 下面是示例代码: for num in range(100, 100): # 拆分数字 digit1 = num // 100 digit2 = (num // 10) % 10 digit3 = num % 10 # 计算立方和 sum_of_cubes = digit1 ** 3 + digit2 ** 3 + digit3 ** 3 # 判断是否水仙花数 if sum_of_cubes == num: print(num) else: print("没有找到任何水仙花数。") 希望这个回复能够帮助到你,如果还有其他问题,请随时提出。 ### 回答2: 水仙花数一个三位数各位数字的立方和等于该数本身的数,例如153就是一个水仙花数,因为$1^3+5^3+3^3=153$。学习Python循环结构之for…else…之寻找水仙花数,我们可以通过以下步骤实现: 1. 定义一个变量count,用于记录找到的水仙花数的个数。 2. 使用for循环从100到999遍历每一个三位数。 3. 在循环中,提取当前数字的个位、十位和百位,计算它们的立方和,若结果等于当前数字,则说明该数字是水仙花数,将count加1,并在控制台输出该数。 4. 在for循环的else代码块中,输出找到的水仙花数的总数。 下面是完整代码实现: ```python count = 0 for i in range(100, 1000): # 提取三位数的个位、十位和百位 baiwei = i // 100 shiwei = (i - baiwei * 100) // 10 gewei = i % 10 # 如果当前数字是水仙花数,输出并将count加1 if baiwei ** 3 + shiwei ** 3 + gewei ** 3 == i: print(i) count += 1 else: # 输出总数 print("一共找到了%d个水仙花数。" % count) ``` 运行程序,输出结果如下: ``` 153 370 371 407 一共找到了4个水仙花数。 ``` 从输出可以看出,我们找到了4个水仙花数,和定义相符合。通过学习Python循环结构之for…else…之寻找水仙花数,我们不仅学习了for循环和else语句的用法,还锻炼了自己的编程思维和实践能力。 ### 回答3: 在学习 Python 循环结构中,我们会接触到 for…else… 这一结构,它是一种特殊的结构,用来寻找定范围内的某些数,并在找到时执行特定的操作。其中,“else”子句是可选的,它用来在循环条件不满足时执行的操作。 在这里,我们以寻找水仙花数为例来介绍 for…else… 结构的使用方法。 什么是水仙花数水仙花数一个三位数,其各个位上的数字的立方和等于该数本身。例如,153 就是一个水仙花数,因为 1 的立方 + 5 的立方 + 3 的立方等于 153。 如何使用 for…else… 结构找出所有的水仙花数? 首先,我们需要确定一下需要查找的数的范围,即所有的三位数。然后,我们需要使用 for 循环来依次检查每个三位数是否水仙花数。检查方法为,将该数的百位、十位、个位上的数字分别取出,然后计算它们的立方和是否等于该数本身。如果是,就表明该数是水仙花数。 代码如下: ``` for i in range(100, 1000): a = i // 100 # 取百位 b = (i // 10) % 10 # 取十位 c = i % 10 # 取个位 if a**3 + b**3 + c**3 == i: print(i) else: print("没有找到水仙花数") ``` 在上述代码中,我们使用了一个 for 循环来遍历范围内的所有三位数,并将它们的百位、十位、个位上的数字依次取出。然后,使用 if 语句来判断该数是否水仙花数,如果是,就打印出来;否则,继续循环。最后,使用 else 子句来输出“没有找到水仙花数”。 总结 通过以上介绍,我们了解了 for…else… 语句的使用方法,以及如何使用 Python 语言寻找水仙花数。对于 Python 初学者来说,掌握了这个知识点之后,就可以更加深入地理解并使用 Python循环结构了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静待花开︳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值