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这一串数字 借楼问下:
大佬们。。
>>> old =
>>> new = old
>>> old =
>>> print(new)
这不是在系统里生成了old的内存空间存放12345了吗,然后把new标签也指向old的这个内存,那old变成了6,为啥print(new)还是12345呀。
我试了sort,old变了ne'w确实也会跟着变呀。 本帖最后由 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:14 编辑
lamupen 发表于 2020-6-23 22:59
借楼问下:
大佬们。。
>>> old =
为什么不自己发求助帖呢?下次请自己发求助帖寻求帮助
前面 new = old 都是指 new 和 old 两个变量指向的是 同一个列表
可以这样理解,这两个都是列表 的别名
而你后来重新把 old = old 别名 给了列表 那么 列表就失去了 old 这个别名 只剩 new 这个别名
所以你打印 new 还是之前的列表
Twilight6 发表于 2020-6-23 23:10
为什么不自己发求助帖呢?下次请自己发求助帖寻求帮助
前面 new = old 都是指 new 和 old 两个变量 ...
发不出来呀,一直提示我帖子不存在{:10_250:} lamupen 发表于 2020-6-23 23:21
发不出来呀,一直提示我帖子不存在
嗯我说的这些能理解吗? Twilight6 发表于 2020-6-23 23:32
嗯我说的这些能理解吗?
能的。谢谢。{:9_228:} lamupen 发表于 2020-6-23 23:42
能的。谢谢。
没事 客气了~~~ 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]