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)
OUTPUT是:
0
1
2
3
4
为什么我们得到这个输出?
答案 0 :(得分:1)
当Python第一次遇到for
循环时,它会构建您请求的range
对象:range(0, 5, 1)
。构造完成后,它将控制循环,并且 not 将被重新评估。在循环执行期间更改变量值不会改变循环操作。
这意味着,就循环(或足够的优化器)而言,您的代码如下所示:
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
答案 1 :(得分:0)
不确定您期望的输出。但是,由于您更改了用于生成范围的参数值,因此我假设您希望输出更长。此时列表已经生成,但不会受到影响。
为了在循环期间实现增加循环范围的可能性,我建议你避免使用范围函数并考虑使用while而不是for。
https://docs.python.org/3/tutorial/controlflow.html
编辑:修剪既快又好我。