【python】循环嵌套

发布于 2022-09-01 23:44:27 字数 1217 浏览 16 评论 0

图片描述

for num in range(10,20): # 迭代 10 到 20 之间的数字
for i in range(2,num): # 根据因子迭代

  if num%i == 0:      # 确定第一个因子
     j=num/i          # 计算第二个因子
     print '%d 等于 %d * %d' % (num,i,j)
     break            # 跳出当前循环

else: # 循环的 else 部分

  print num, '是一个质数'
  

一直觉得执行完套内的for循环,再执行套外for循环
所以我的思路是:
for num in range(10,20): # 此时num=10,进入下一个for循环

for i in range(2,num): # 此时 i从(2,10)此时num=10,中取值,根据in和range,此时i取值2,进入if语句
    if num%i == 0:     # 此时10%2=5 可以整除,if语句为true
       j=num/i         # j=10/2=5,则执行print语句 显示“10 等于 2 * 5”,先把第二个for中所有循环执行,先不执行else
       
                       # 此时num=10,进入下一个for循环,因为仍在第二个for循环中
for i in range(2,num): # 此时 i从(2,10)此时num=10,中取值,根据in和range,此时i取值3,进入if语句
    if num%i == 0:     # 此时10%3=5 不可以整除,if语句为false,之后语句不知道如何执行,默认跳出,直至i=5,能整除时,j=10/5=2,则执行print语句 应该打印出“10 等于 5 * 2”,但是没有
  

地址:http://www.runoob.com/python/python-for-loop.html 中python for 循环语句

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

空城缀染半城烟沙 2022-09-08 23:44:27

首先吐槽你问问题的方式: 不要将问题混在代码中!我找了半天才知道你在问什么

其次你的问题有个错误: 10 % 3=1而不是5

最后是答案: 看到 break 了吗?在num=10,i=2时内层循环就退出了,下次应该是num=11,i=2

单身情人 2022-09-08 23:44:27

因为i等于2的时候,就已经被break掉了。
所以不会再执行剩下的内层for循环,当然也不会执行内层的else语句。
而是执行外层的for循环,取下一个需要判断是不是质数的数字,然后内层从2重新开始循环,当发现这个数是质数的时候,break掉,当执行完内部循环还没有被break的话,就会执行内层的else语句。

就酱~

P.S.最后吐槽,不认真看,真不知道你在问什么。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文