Python循环代码中print(number)输出9的原因咨询
为什么
print(number)输出9? Python中for循环的变量在循环结束后不会被销毁,会保留最后一次迭代时的赋值,这就是你看到输出9的原因。
看你的第一个循环代码:
for number in range(10): print(number) print("Hello") print("Hi there")
range(10)生成的是0到9的整数序列(遵循左闭右开规则,不包含10)。这个循环会依次将0、1、2……9赋值给number变量,当循环执行完最后一次时,number被设置为9,之后这个变量会一直保留这个值,不会被自动清除。
后面的第二个循环使用的是x变量,和number没有关联,所以不会改变number的取值。
在遍历fav_movies的循环中,你每次打印number时,它仍然是第一个循环结束后留下的9,因此每次输出都是9。最后单独执行的print(number),自然也会输出9。
如果要避免这种意外,建议不要在循环外部使用循环内定义的变量,或者在需要时重新为变量赋值。
内容的提问来源于stack exchange,提问作者rnh
相关产品推荐
相关产品推荐

