缩进不同导致返回结果不同,似懂非懂,哪位大神帮忙解析指点下
# p4_5.pyfor i in range(10):
if i % 2 != 0:
print(i)
continue
i += 2
print(i)
-----------------------------
# p4_5_1.py
for i in range(10):
if i % 2 != 0:
print(i)
continue
i += 2
print(i)
这两个代码片段的主要区别在于i += 2以及print(i)的缩进。因此,这两个代码片段在执行过程中的行为是不同的。让我们一起来分析这两段代码。
p4_5.py
这段代码中,当i在0到9之间时,循环进行以下操作:
1、如果i不是偶数(即i % 2 != 0),打印i的值,然后通过continue跳过本次循环的剩余部分,进入下一次循环。
2、如果i是偶数,执行i += 2操作,即将i的值增加2,然后打印i的新值。
代码执行结果如下:
2
1
4
3
6
5
8
7
10
p4_5_1.py
这段代码中,当i在0到9之间时,循环进行以下操作:
1、如果i不是偶数(即i % 2 != 0),打印i的值,然后通过continue跳过本次循环的剩余部分,进入下一次循环。
请注意,由于continue后面的代码块(i += 2和print(i))是在if语句内部的,因此当满足i % 2 != 0条件时,它们将不会被执行。
2、如果i是偶数,本次循环不会执行任何操作,因为没有缩进与if语句平行的代码。
代码执行结果如下:
1
3
5
7
9
总之,由于缩进的不同,两段代码执行的操作和输出结果也不同。p4_5.py会打印偶数+2和奇数,而p4_5_1.py只会打印奇数。
所以跟 continue 同一个缩进级别的语句放在 continue 的后面是没有任何意义的 isdkz 发表于 2023-3-17 09:23
这两个代码片段的主要区别在于i += 2以及print(i)的缩进。因此,这两个代码片段在执行过程中的行为是不同的 ...
也就是说:
比如像p4_5_.py这样跟 continue 同一个缩进级别的语句放在 continue 的后面是没有任何意义的
对吧? lzb1001 发表于 2023-3-17 11:17
也就是说:
比如像p4_5_.py这样跟 continue 同一个缩进级别的语句放在 continue 的后面是没有任何意义 ...
对的,因为不会被执行,所以放在那里也没有意义 是不是应该i+=1
页:
[1]