#PY小贴士# for 循环定义的变量,循环外可以用吗?

简介: 我们知道,在 python 中要获取一个变量的值,必须是先给它赋值过,不然就是未定义。那么这个 i,代码中没有显式的赋值,在循环体之外还可以用吗?

在使用 for 循环时,需要定义变量,大多数时候我们都会用一个 i 来表示:


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


我们知道,在 python 中要获取一个变量的值,必须是先给它赋值过,不然就是未定义。那么这个 i,代码中没有显式的赋值,在循环体之外还可以用吗?

答案是肯定的。


for i in range(10):  
pass
print(i)

对此你可以理解成:每次循环,都做了一个 i = 的赋值。

所以,循环外的 i 会保留它在循环中最后的值。可以用它来判断循环进行到了哪里:


for i in range(10):
    if i * 3 > 10:
        break
print(i)


不过直接在循环外使用循环变量也是有风险的,因为循环有可能一次都没有执行:


for i in range(-10):   
pass
print(i)


这时程序就会报错,因为 i 从未被赋值过。

如果确定要在循环外使用 i 的值,可以在循环之前对 i 做一次赋值。这样既不影响循环的正常执行,也避免了未定义的错误:


i = -1
for i in range(-10):
    pass
print(i)


#PY小贴士# 里,我们会分享 python 知识点、开发小技巧、学习中的常见问题等。短小,适合碎片时间阅读,欢迎关注!

本栏目接受投稿,采纳后将署名发表,可附个人博客、公众号、Github等。

如果你在编程学习中有疑问,可通过以下方式向我们提问:

1. 加入码上行动答疑群(最及时响应)

2. 加入知识星球 https://t.zsxq.com/IiAiiQj

3. 发微博加上 #编程教室# @Crossin(非私信)

提问时请表述清楚,附上必要代码、输出等截屏。

相关文章
|
8月前
|
Java Python
循环程序举例
循环程序举例
62 1
|
6月前
|
语音技术
语音识别----函数基础定义联系案例,函数的参数,函数的参数练习案例,函数的返回值定义语法,函数返回值之None,函数的说明文档,函数的嵌套调用,变量在函数中的作用域,内部变量变全局变量用global
语音识别----函数基础定义联系案例,函数的参数,函数的参数练习案例,函数的返回值定义语法,函数返回值之None,函数的说明文档,函数的嵌套调用,变量在函数中的作用域,内部变量变全局变量用global
|
7月前
|
jenkins Java 持续交付
一篇文章讲明白JenkinsPipelinescript指令创建和变量定义
一篇文章讲明白JenkinsPipelinescript指令创建和变量定义
304 0
|
Python
python之数据的赋值方式,变量内存地址的获取方式,获取变量名的方法,不同方法之间的区别
python之数据的赋值方式,变量内存地址的获取方式,获取变量名的方法,不同方法之间的区别
|
8月前
|
C++ 容器
C++语言中for语句循环和作用类型
C++语言中for语句循环和作用类型
117 0
C4.
|
8月前
|
程序员 C语言 开发者
C语言中如何改变循环执行的状态
C语言中如何改变循环执行的状态
C4.
85 0
|
Python
python之while循环,无限循环,while循环的嵌套的定义和使用。
python之while循环,无限循环,while循环的嵌套的定义和使用。
119 1
|
算法 编译器 C语言
【C语言】 函数(下):函数的嵌套调用 -- 链式访问 -- 声明 -- 定义 -- 递归 -- 练习2
【C语言】 函数(下):函数的嵌套调用 -- 链式访问 -- 声明 -- 定义 -- 递归 -- 练习2
|
C语言
【C语言】 函数(下):函数的嵌套调用 -- 链式访问 -- 声明 -- 定义 -- 递归 -- 练习3
【C语言】 函数(下):函数的嵌套调用 -- 链式访问 -- 声明 -- 定义 -- 递归 -- 练习3
|
编译器 C语言
【C语言】 函数(下):函数的嵌套调用 -- 链式访问 -- 声明 -- 定义 -- 递归 -- 练习1
【C语言】 函数(下):函数的嵌套调用 -- 链式访问 -- 声明 -- 定义 -- 递归 -- 练习1

热门文章

最新文章