python中for循环代码段的输出
输出为:python中for循环代码段的输出,python,python-3.x,Python,Python 3.x,输出为: i, j, k, u = 0, 5, 1, 3 for l in range(i, j, k): if l == u: print(l) u = 8 i = 12 j = 7 k = -1 else: print(l) 为什么我们会得到这个输出?当Python第一次遇到for循环时,它会构建您请求的范围对象:范围(0,5,1)。一旦构建,它将控制循环,并且不会被重新评估。在
i, j, k, u = 0, 5, 1, 3
for l in range(i, j, k):
if l == u:
print(l)
u = 8
i = 12
j = 7
k = -1
else:
print(l)
为什么我们会得到这个输出?当Python第一次遇到
for
循环时,它会构建您请求的范围
对象:范围(0,5,1)
。一旦构建,它将控制循环,并且不会被重新评估。在循环执行期间更改变量值不会更改循环操作
这意味着,就循环(或足够的优化器)而言,您的代码如下所示:
0
1
2
3
4
不确定您期望的输出是什么。但是,由于您更改了用于生成范围的参数值,我假设您希望输出更长。然而,此时列表已经生成,不会受到影响
为了在循环中实现循环范围增加的可能性,我建议您避免使用范围函数,考虑使用而不是。
编辑:Prune比我更快更好。你期望得到什么样的结果?@Carcigenicate是对的。在我们了解您的期望之前,我们无法向您解释任何事情。@Prune和NacMacFeegle谢谢您的帮助,您解决了我的问题,并且:)
i,j,k,u=0,5,1,3
for l in range(i,j,k) :
print(l)
u=8
i=12
j=7
k=-1