我的问题涉及本声明的结果:
for x in range(4), y in range(4):
    print x
    print y
结果是:
[0, 1, 2, 3]
2
True
2
似乎有一个比较涉及,我只是无法弄清楚为什么输出结构是这样的.
我的猜测是你从交互式控制台运行它,并且已经y定义了值为2(否则,你会得到NameError: name 'y' is not defined).这将导致您观察到的输出.
这是因为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):
然后,这会导致循环的2次迭代for,因为它遍历元组的每个元素:
x = [0,1,2,3]x = True.(当然,y仍然是2.)
| 归档时间: | 
 | 
| 查看次数: | 262 次 | 
| 最近记录: |