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都打印了两次,一次是因为上面的print语句,另一次是因为else部分。
这是不是意味着第一个版本的else:可以在while循环外面执行?这不是很奇怪吗?
那么,这背后的原因可能是什么呢?
1 个回答
2
在Python中,while
循环可以有 else
语句。根据while
语句的说明:
while_stmt ::= "while" expression ":" suite ["else" ":" suite]
这个
while
语句会不断检查一个条件,如果这个条件为真,就会执行第一部分的代码;如果条件为假(这可能是在第一次检查时就为假),那么如果有else
语句,就会执行else
部分的代码,然后循环结束。