624 发表于 2020-6-23 22:56:31

continue循环语句

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

请问这个是怎么运行的,range(10)表示的不是0,1,2,3,4,5,6,7,8,9这一列数吗,i是怎么取值的?i余2不等于0又是怎么理解呢?结果显示为什么是2,1,4,3,6,5,8,7,10,9这一串数字

lamupen 发表于 2020-6-23 22:59:58

借楼问下:
大佬们。。
>>> old =
>>> new = old
>>> old =
>>> print(new)

这不是在系统里生成了old的内存空间存放12345了吗,然后把new标签也指向old的这个内存,那old变成了6,为啥print(new)还是12345呀。
我试了sort,old变了ne'w确实也会跟着变呀。

Twilight6 发表于 2020-6-23 23:10:04

本帖最后由 Twilight6 于 2020-6-23 23:14 编辑


continue 的作用是终止本次循环,开始下次循环,所以当代码运行到这的时候,就不继续运行 continue 下面的代码了,而是重新开始新的循环

for 循环过程中 每次都会给 i 重新赋值,所以导致你在 for 循环中 对 i 进行增大是不会影响 for 循环的进行的

range(10)表示的不是0,1,2,3,4,5,6,7,8,9这一列数吗,i是怎么取值的?
单纯的 :
for i in range(10):
    print(i)
代码就是打印 :
0
1
2
3
4
5
6
7
8
9
而你这里的 for 循环里面条件不同,不是直接打印:
for i in range(10):
    if i % 2 != 0:
          print(i)
          continue
    i += 2
    print(i)
if i % 2 != 0 这段代码判断循环到的 i 的值是否能被 2 整除,如果不能被整除那么执行 if 里面的代码块

if 里面有 print 所以会打印出不能被 2 整除的值,然后执行到 continue 不在继续执行下面的代码 重新开始下个循环

而如果能被 2 整除那么就 不执行 if 里面的代码,而是执行
i += 2
print(i)
这里的 i 被 + 2 之后打印,这也是为什么打印的结果会那么乱序,但是每次for 循环重新开始时候 会重新给 i 赋值,所以这里的 i +2 并不会影响 for 循环的进行

结果显示为什么是2,1,4,3,6,5,8,7,10,9这一串数字
直接举例子吧:

当for开始时候 i = 0 ,进入for 循环内 进行判断 if 条件 i % 2 = 0 所以 条件不成立 不执行 if 里面的代码

那就执行 i += 2 和 print(i) ,导致结果位 i = 2print(i) 打印了 2

然后 开始下一次循环 i = 1,判断 i % 2 = 1 所以不等于0 条件成立 进入 if

print(i) 直接打印此时的 i = 1 遇到 continue 开始下次循环i = 3

依次循环打印的结果就是 :
2
1
4
3
6
5
8
7
10
9

Twilight6 发表于 2020-6-23 23:10:44

本帖最后由 Twilight6 于 2020-6-23 23:14 编辑

lamupen 发表于 2020-6-23 22:59
借楼问下:
大佬们。。
>>> old =


为什么不自己发求助帖呢?下次请自己发求助帖寻求帮助

前面 new = old 都是指 new 和 old 两个变量指向的是 同一个列表

可以这样理解,这两个都是列表 的别名

而你后来重新把 old = old 别名 给了列表 那么 列表就失去了 old 这个别名 只剩 new 这个别名

所以你打印 new 还是之前的列表

lamupen 发表于 2020-6-23 23:21:05

Twilight6 发表于 2020-6-23 23:10
为什么不自己发求助帖呢?下次请自己发求助帖寻求帮助

前面 new = old 都是指 new 和 old 两个变量 ...

发不出来呀,一直提示我帖子不存在{:10_250:}

Twilight6 发表于 2020-6-23 23:32:54

lamupen 发表于 2020-6-23 23:21
发不出来呀,一直提示我帖子不存在

嗯我说的这些能理解吗?

lamupen 发表于 2020-6-23 23:42:37

Twilight6 发表于 2020-6-23 23:32
嗯我说的这些能理解吗?

能的。谢谢。{:9_228:}

Twilight6 发表于 2020-6-23 23:45:04

lamupen 发表于 2020-6-23 23:42
能的。谢谢。

没事 客气了~~~

624 发表于 2020-6-24 15:16:58

lamupen 发表于 2020-6-23 22:59
借楼问下:
大佬们。。
>>> old =


那么请问抛开这个例子, for 循环是怎样进行循环的呢,for循环中 i 的赋值是随机的吗,看您这个回答,i 值是按range(10)里的10,1,2,3,4,5,6,7,8,9 的顺序进行赋值循环的,for循环都是按一定顺序进行的吗
页: [1]
查看完整版本: continue循环语句