鱼C论坛

 找回密码
 立即注册
查看: 2267|回复: 4

缩进不同导致返回结果不同,似懂非懂,哪位大神帮忙解析指点下

[复制链接]
发表于 2023-3-17 09:17:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
# p4_5.py

for 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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-17 09:23:42 | 显示全部楼层
这两个代码片段的主要区别在于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 的后面是没有任何意义的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-17 11:17:48 | 显示全部楼层
isdkz 发表于 2023-3-17 09:23
这两个代码片段的主要区别在于i += 2以及print(i)的缩进。因此,这两个代码片段在执行过程中的行为是不同的 ...

也就是说:

比如像p4_5_.py这样跟 continue 同一个缩进级别的语句放在 continue 的后面是没有任何意义的

对吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-17 11:32:48 | 显示全部楼层
lzb1001 发表于 2023-3-17 11:17
也就是说:

比如像p4_5_.py这样跟 continue 同一个缩进级别的语句放在 continue 的后面是没有任何意义 ...

对的,因为不会被执行,所以放在那里也没有意义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-17 14:46:50 | 显示全部楼层
是不是应该i+=1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-12 10:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表