【发布时间】:2014-09-13 15:54:35
【问题描述】:
给定以下 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 和一次由于 else 子句。 这是否意味着第一个版本允许 else: 到 while 循环之外?这不是很奇怪吗? 背后的原因可能是什么?
【问题讨论】:
-
这个问题显示/询问 else: of while 和 else: of if 子句的区别
标签: python