内容正文:
变量的作用域
Simple Easy Open Free Portable
1
目录
contents
什么是变量的作用域△
01
局部变量和全局变量☆
02
2
PART
01
变量的作用域
3
什么是变量的作用域?
python程序中所使用的变量,在不同的位置创建,其起作用的范围是不同的。变量起作用的范围称为变量的作用域。
4
PART
02
局部变量
5
什么是局部变量?
在函数内定义的变量称为局部变量,包括函数参数。局部变量只在所定义的函数内起作用。
6
例 1 局部变量的作用域
def fun(discount):
price = 200 # 在函数体中定义局部变量
price = price * discount #价格=单价*折扣
print("fun:price",price)
fun(0.8)
运行程序后,会输出结果:fun:price 160
7
例 2 局部变量的作用域
def fun(discount):
price = 200 # 在函数体中定义局部变量
price = price * discount #价格=单价*折扣
print("fun:price",price)
fun(0.8)
print("main:price",price)
运行程序,会输出如下报错信息:NameError: name 'price' is not defined
8
PART
03
全局变量
9
什么是全局变量?
在所有函数之外定义的变量称为全局变量。全局变量的作用域是从定义点到程序结束。
10
例 3 全局变量的作用域
def fun(discount):
print("fun:price",price)
price = 100 # 在主程序中定义全局变量
fun(0.8)
print("main:price",price)
运行程序后,会输出结果:
fun:price 100
main:price 100
11
例 4 在函数体中的赋值语句会定义同名局部变量
def fun(discount):
price = price * discount
print("fun:price",price)
price = 100
fun(0.8)
print("main:price",price)
运行时会输出如下错误信息:
UnboundLocalError: local variable 'price' referenced before assignment
12
例5 使用global 显式声明全局变量def fun(discount):
def fun(discount):
global price # global 语句用来将price 声明为全局变量
price = price * discount
print("fun:price",price)
price = 100
fun(0.8)
print("main:price",price)
运行程序后,会输出如下结果:
fun:price 80
main:price 80
13
1.变量的作用域△
2.局部变量和全局变量☆
LOREM
本节小结
14
$$