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


for 循环的临时变量循环体外部也可以访问 , 但是不建议这么做 , 代码不够规范 ;

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





一、变量作用域




1、for 循环临时变量访问


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

"""
for 循环临时变量
"""

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

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

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

0
1
2
2

在这里插入图片描述


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


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

在 for 循环的外部 , 执行

print(i)

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

Name 'i' can be undefined

在这里插入图片描述

在 for 循环中的

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

代码 , 运行后打印出

0
1
2

在 for 循环外的

# 此处不应该访问到 for 循环中的临时变量 i
print(i)

代码 , 运行后打印出

2

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


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

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


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


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


代码示例 :

"""
for 循环临时变量
"""

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

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

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

执行结果 :

0
1
2
2

在这里插入图片描述


猜你喜欢

转载自blog.csdn.net/han1202012/article/details/130922804