#PY小贴士# for 循环定义的变量,循环外可以用吗?
在使用 for 循环时,需要定义变量,大多数时候我们都会用一个 i 来表示:
for i in range(10): print(i)我们知道,在 python 中要获取一个变量的值,必须是先给它赋值过,不然就是未定义。那么这个 i,代码中没有显式的赋值,在循环体之外还可以用吗?
答案是肯定的。
for i in range(10): passprint(i)对此你可以理解成:每次循环,都做了一个 i = 的赋值。
所以,循环外的 i 会保留它在循环中最后的值。可以用它来判断循环进行到了哪里:
for i in range(10): if i * 3 > 10: breakprint(i)不过直接在循环外使用循环变量也是有风险的,因为循环有可能一次都没有执行:
for i in range(-10): passprint(i)这时程序就会报错,因为 i 从未被赋值过。
如果确定要在循环外使用 i 的值,可以在循环之前对 i 做一次赋值。这样既不影响循环的正常执行,也避免了未定义的错误:
i = -1for i in range(-10): passprint(i) 赞 (0)
