angel_wy 发表于 2025-4-14 15:48:12

新人求助

for i in range(14):
print(i)

问题:for循环里面的i 为什么不用提前进行赋值?


FishC 发表于 2025-4-14 15:48:57

关于for循环变量i不用提前赋值的原因:

在Python中,for i in range() 这个结构中:

[*]循环变量 i 是由for循环自动创建并赋值的
[*]每次循环时,解释器会自动将迭代对象(这里是range(14))的当前值赋给i
[*]这个变量会随着循环自动初始化、更新,直到循环结束


举个对比例子:在C语言中需要手动声明变量,而Python做了简化:
// C语言需要提前声明
for(int i=0; i<14; i++)

# Python自动处理
for i in range(14):

注意:如果在循环前已经有同名变量,这个变量会被循环中的i覆盖:
i = 999
for i in range(3):
    print(i)# 输出0,1,2
print(i)      # 最终输出2

这种设计让代码更简洁,避免重复声明变量。只需确保迭代对象正确即可~

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

player-none 发表于 2025-4-14 18:24:43

这就是for的设计,for可以简化同等运行效果的while.


i = 0
while i < 14:
    print(i)
    i += 1

完全等效。for 在遍历 range 的时候自动创建并给每一个值赋值(在它上面贴了一个“i”的标签),这样你就可以用“i”了
页: [1]
查看完整版本: 新人求助