前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【Python】循环语句 ⑥ ( 变量作用域 | for 循环临时变量访问 | 分析在 for 循环外部访问临时变量的问题 | 在 for 循环外部访问临时变量的正确方式 )

【Python】循环语句 ⑥ ( 变量作用域 | for 循环临时变量访问 | 分析在 for 循环外部访问临时变量的问题 | 在 for 循环外部访问临时变量的正确方式 )

作者头像
韩曙亮
发布2023-10-11 17:12:05
发布2023-10-11 17:12:05
73600
代码可运行
举报
运行总次数:0
代码可运行
for 循环的临时变量 在 循环体外部也可以访问 , 但是不建议这么做 , 代码不够规范 ;

如果需要在外部访问 for 循环的临时变量 , 建议将该 临时变量 预定义在 for 循环的外部 , 然后在后续的所有代码中可以访问该 临时变量 ;

一、变量作用域

1、for 循环临时变量访问

下面的 for 循环中 , 临时变量 i 变量 的作用域范围 , 仅限于 for 循环语句内部 , 但是在 for 循环外部可以访问到临时变量 i ;

代码语言:javascript
代码运行次数:0
运行
复制
"""
for 循环临时变量
"""

# i 变量是 for 循环的 临时变量, 仅在 for 循环内部生效
for i in range(3):
	print(i)
# 此处不应该访问到 for 循环中的临时变量 i
# 但是此处可以访问到 临时变量 i 
print(i)

理论上说 , for 循环中的 临时变量 是 临时的 , 只在 for 循环内部生效 , 在 for 循环的外部不应该生效 ;

但是 如果在 for 循环外部 访问该临时变量 i 是可以访问的 , 上述代码的执行结果如下 :

代码语言:javascript
代码运行次数:0
运行
复制
0
1
2
2

2、分析在 for 循环外部访问临时变量的问题

下面分析一下上述 在 for 循环外部访问 for 循环临时变量的问题 ;

在 for 循环的外部 , 执行

代码语言:javascript
代码运行次数:0
运行
复制
print(i)

代码 , 编译器没有报错 , 但是 报了一条警告

代码语言:javascript
代码运行次数:0
运行
复制
Name 'i' can be undefined

在 for 循环中的

代码语言:javascript
代码运行次数:0
运行
复制
# i 变量是 for 循环的 临时变量, 仅在 for 循环内部生效
for i in range(3):
	print(i)

代码 , 运行后打印出

代码语言:javascript
代码运行次数:0
运行
复制
0
1
2

在 for 循环外的

代码语言:javascript
代码运行次数:0
运行
复制
# 此处不应该访问到 for 循环中的临时变量 i
print(i)

代码 , 运行后打印出

代码语言:javascript
代码运行次数:0
运行
复制
2

内容 , 这说明 for 循环外的 变量 i 就是 for 循环的临时变量 ;

这种用法 , 不符合规范 , 不建议使用 , 会造成代码不可维护 , 以及其它未知错误 ;

但是从编译规则上 , 这种用法并不报错 , 程序可以跑通 , 写出这种代码的就是低级程序员 ;

3、在 for 循环外部访问临时变量的正确方式

在 for 循环 之前 , 先定义变量 i , 然后在后面的代码中 , 不管是 for 循环内部 , 还是 for 循环外部 , 都可以使用该 变量 i ;

代码示例 :

代码语言:javascript
代码运行次数:0
运行
复制
"""
for 循环临时变量
"""

# 先定义临时变量
# 在后面的代码中
# 不管是 for 循环内部 , 还是 for 循环外部
# 都可以使用该 变量 i
i = 0

# i 变量是 for 循环的 临时变量, 仅在 for 循环内部生效
for i in range(3):
	print(i)

# 访问的变量 i 作用域为整个代码文件
print(i)

执行结果 :

代码语言:javascript
代码运行次数:0
运行
复制
0
1
2
2
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • for 循环的临时变量 在 循环体外部也可以访问 , 但是不建议这么做 , 代码不够规范 ;
  • 一、变量作用域
    • 1、for 循环临时变量访问
    • 2、分析在 for 循环外部访问临时变量的问题
    • 3、在 for 循环外部访问临时变量的正确方式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档