heiwuchang207 发表于 2022-6-15 16:33:39

python p10了不起的分支和循环3中的余数问题

代码:
for i in range(10):
    if i % 2 != 0:
      print(i)
      continue
    i += 2
    print(i)

运行结果:
2
1
4
3
6
5
8
7
10
9

进程已结束,退出代码0

第一次运行10/2余0跳出循环,所以第一个运行结果是2.
但是2/2同样余0为什么运行结果却是1呢?
求大佬解惑

leletatann 发表于 2022-6-15 20:50:07

本帖最后由 leletatann 于 2022-6-15 20:52 编辑

他是从0到9来循环的
第一次运行 i 是0,0/2 == 0所以就打印 i = 0+2 , i = 2;
第二次运行 i 是1,1/2 !=0所以就打印 i = 1;
第三次运行 i 是2,2/2 == 0所以就打印 i = 2+2 , i = 4;
第四次运行 i 是3,3/2 !=0所以就打印 i = 3;
第五次运行 i 是4,4/2 == 0所以就打印 i = 4+2 , i = 6;
第六次运行 i 是5,5/2 !=0所以就打印 i = 5;
第七次运行 i 是6,6/2 == 0所以就打印 i = 6+2 , i = 8;
第八次运行 i 是7,7/2 !=0所以就打印 i = 7;
第九次运行 i 是8,8/2 == 0所以就打印 i = 8+2 , i = 10;
第十次运行 i 是9,9/2 !=0所以就打印 i = 9;

xueCxueCxueJava 发表于 2022-6-15 22:36:51

{:10_256:}{:10_266:}{:5_110:}

迷路的狍子 发表于 2022-6-16 00:00:30

循环内i的变化不会影响for语句中i的值。
for循环遍历的是序列项目,不能单纯的认为i是一个值,for循环中的i是序列中的对象。
而range()是一个迭代对象,range(10)是range(0,10,step = 1)的缩写,默认指定了步长为1,所以遍历它会返回从0~9。

heiwuchang207 发表于 2022-6-16 11:48:40

leletatann 发表于 2022-6-15 20:50
他是从0到9来循环的
第一次运行 i 是0,0/2 == 0所以就打印 i = 0+2 , i = 2;
第二次运行 i 是1,1/2 !=...

最佳答案{:5_106:}感谢大佬

heiwuchang207 发表于 2022-6-16 11:49:15

迷路的狍子 发表于 2022-6-16 00:00
循环内i的变化不会影响for语句中i的值。
for循环遍历的是序列项目,不能单纯的认为i是一个值,for循环中的 ...

感谢大佬答疑解惑{:5_106:}
页: [1]
查看完整版本: python p10了不起的分支和循环3中的余数问题