我的问题是关于这个语句的输出:
for x in range(4), y in range(4):
print x
print y
结果:
[0, 1, 2, 3]
2
True
2
好像有比较,我就是想不通为什么输出是这样的。
最佳答案
我猜你是从交互式控制台运行它,并且已经定义了值为 2 的 y
(否则,你会得到 NameError: name 'y'未定义
)。这将导致您观察到的输出。
这是由于 for x in range(4), y in range(4):
在计算时实际上等同于以下内容:
for x in (range(4), y in range(4)):
减少到...
for x in ([0,1,2,3], 2 in range(4)):
再次减少到...
for x in ([0,1,2,3], True):
这将导致 for
循环的 2 次迭代,因为它遍历元组的每个元素:
x = [0,1,2,3]
x = True
。
(当然,y
仍然是 2。)
关于Python:for语句行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2772264/