为何这段Python for循环输出1,1,2而非2,2,3?
代码输出分析
先看你给出的代码:
ids = ["XF345_89", "XER76849", "XA454_55"] x = 0 for id in ids: if '_' in id: x = x + 1 print(x)
它的输出是1,1,2,拆成三次循环就能明白原因:
- 第一次循环:当前id是
XF345_89,包含下划线,x从0加到1,紧接着打印x,输出1。 - 第二次循环:当前id是
XER76849,没有下划线,x保持1不变,直接打印x,输出1。 - 第三次循环:当前id是
XA454_55,包含下划线,x从1加到2,打印x,输出2。
你误以为会输出2,2,3,是默认每次循环x都会加1,但实际上x只有在当前id包含下划线时才会递增,不是每次循环都执行x = x +1。每次循环的最后都会打印当前的x值,所以就得到了1、1、2的结果。
内容的提问来源于stack exchange,提问作者albrad5
相关产品推荐
相关产品推荐

