关于缩进
求大佬解惑:为什么这里是else和for缩进是一样的而不是和 if,为什么和if同一缩进就会变成那样 本帖最后由 逃兵 于 2020-11-22 11:01 编辑这个是 for else 语句
如果for循环正常结束,else中语句执行。如果break,else中的语句不执行。
可以参考一下 @heidern0612 大佬分享的笔记
【python中for…else和while…else的用法】 是不能写成if-else的,因为
对应x从2遍历到n的所有不满足if的情况,都会输出同一句话“n是一个素数”,
原因在于n得值有外循环决定,而内层for循环,只需要输出一次“n是一个素数”
相反,用for-else语句就能很好的满足条件:
n能整除x时,证明不是素数,顺便打印一个式子,break后,此次for-else循环结束,else也就不执行了
n不能整除x时,是素数,if直接被跳过,for也就执行结束,顺带执行else,打印“n是一个素数”
本帖最后由 ebusen 于 2020-11-22 16:06 编辑
昨非 发表于 2020-11-22 11:01
是不能写成if-else的,因为
对应x从2遍历到n的所有不满足if的情况,都会输出同一句话“n是一个素数”,
...
可是 if-else的话有些素数的输出情况为什么会只重复有限多次呢 本帖最后由 昨非 于 2020-11-22 16:09 编辑
ebusen 发表于 2020-11-22 16:02
可是 if-else的话有些非素数的输出情况为什么会只重复有限多次呢
你说的这个有限多次是指,x从2到n的次数中,除去if成立的情况自然是有限次 昨非 发表于 2020-11-22 16:03
因为break跳出了
直接进入下一次for循环,对应x得值变了,自然打印的东西不同了
刚刚打错了我想问的是是素数的情况。。就是图一那种{:10_266:} ebusen 发表于 2020-11-22 16:07
刚刚打错了我想问的是是素数的情况。。就是图一那种
打印的是素数和不是素数(那个式子)的次数之和是x从2遍历到n的次数
自然是有限次啊 还不明白吗? ebusen 发表于 2020-11-22 16:07
刚刚打错了我想问的是是素数的情况。。就是图一那种
就比如 :
n=3时,x=2,打印一次是素数,结束所以一共打印一次
n=5时,x=2时,打印一次素数,x=3时,再一次,x=4时,有一次,结束所以一共打印3次 本帖最后由 ebusen 于 2020-11-22 17:59 编辑
昨非 发表于 2020-11-22 16:34
就比如 :
n=3时,x=2,打印一次是素数,结束所以一共打印一次
不是不是我问的是那个图一那个打印素数的语句有些地方会重复打印,但是又只打印了几次而已,不懂这是为什么。就比如‘7是素数’ ‘7是素数’ ‘7是素数’这种重复 ebusen 发表于 2020-11-22 17:57
不是不是我问的是那个图一那个打印素数的语句有些地方会重复打印,但是又只打印了几次而已,不懂这是 ...
9楼说的就是这个啊 ebusen 发表于 2020-11-22 17:57
不是不是我问的是那个图一那个打印素数的语句有些地方会重复打印,但是又只打印了几次而已,不懂这是 ...
n=7时,x=2时,打印一次素数,x=3时,打印第二次,x=4时,打印第三次,到最后x=6,打印第五次结束所以一共打印5次 昨非 发表于 2020-11-22 18:01
9楼说的就是这个啊
啊我明白了谢谢大佬 ebusen 发表于 2020-11-22 18:05
啊我明白了谢谢大佬
终于明白了,在不明白我就自闭了{:10_266:} 昨非 发表于 2020-11-22 18:06
终于明白了,在不明白我就自闭了
哎都怪我太笨了{:10_243:} ebusen 发表于 2020-11-22 18:15
哎都怪我太笨了
不至于不至于 昨非 发表于 2020-11-22 18:17
不至于不至于
{:10_250:}{:10_266:}
页:
[1]