Python中while循环内外的else语句
Python中while循环内外的else语句
这个问题已经有了答案:
给定以下Python程序:
#Version 1 x = 15 y = 8 while x - y > 0: x -= 2 y += 1 print x, y if x % y == 0: break else: print x, y
输出结果为:
13 9 11 10 9 11 9 11
前三行在while循环内被打印出来,最后一行(9 11)作为else子句的一部分再次被打印出来。
现在是另一个变体:
#version 2 x = 15 y = 8 while x - y > 0: x -= 2 y += 1 print x, y if x % y == 0: break else: print x, y
现在的输出结果是:
13 9 13 9 11 10 11 10 9 11 9 11
看,每个x、y对被打印了两次,一次是在if语句之前的print语句,一次是因为else子句。
这是否意味着第一个版本允许else子句超出while循环?这不奇怪吗?
背后的原因是什么?
admin 更改状态以发布 2023年5月22日