Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中for循环代码段的输出_Python_Python 3.x - Fatal编程技术网

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