gpt4 book ai didi

Python嵌套for循环变量 'overwrite'

转载 作者:行者123 更新时间:2023-11-28 20:34:19 25 4
gpt4 key购买 nike

抱歉这个菜鸟问题,但请有人向我解释一下这个嵌套 for 循环的内部工作原理。

v,w = 2,4
for v in range(v):
for w in range(w):
print('v=',v,'w=',w)

如果我这样运行,输出结果如下:

v= 0 w= 0
v= 0 w= 1
v= 0 w= 2
v= 0 w= 3
v= 1 w= 0
v= 1 w= 1
v= 1 w= 2

我认为它“过早地”停止(缺少最后一个输出 v= 1 w= 3),因为在最后一个循环运行之前分配给“w”变量的最后一个值是 3。

如果我这样运行它,它会起作用,但至少可以说不像 Pythonic。

v,w = 2,4
for v in range(v):
for w in range(w):
print('v=',v,'w=',w)
w = 4

能否解释一下如何最好地解决这个问题?

最佳答案

I figured it stops 'prematurely' (the last output v= 1 w= 3 is missing) cause the last value assigned to the 'w' variable was 3 before the last loop ran

正确。

Could some please explain how this problem is best addressed?

不要为了两种不同的含义而重复使用同一个局部变量名:

n_v, n_w = 2, 4
for v in range(n_v):
for w in range(n_w):
print('v=', v, 'w=', w)

关于Python嵌套for循环变量 'overwrite',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48751764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com