Python 程序设计讲义(61):Python 的函数——变量的作用域
Python 程序设计讲义(61):Python 的函数——变量的作用域
目录
- Python 程序设计讲义(61):Python 的函数——变量的作用域
- 一、局部变量
- 二、全局变量
- 1、在函数内访问全局变量
- 2、在函数内定义和全局变量同名的局部变量
- 3、在函数内修改全局变量
变量的作用域是指变量有效的范围,即程序代码能够访问到该变量的区域。根据变量的作用域将变量分为局部变量和全局变量。
一、局部变量
局部变量是指在函数内部定义的变量。例如:函数的形参就是局部变量,它只在函数内部有效。当函数调用完毕后,该变量就不存在了。
例如:
def test():x="Hello Python" #变量x是局部变量,只能在函数内部访问print(x)test()程序的执行结果为:
Hello Python
下面的代码报如下错误:
def test():x="Hello Python"print(x) #变量x是局部变量,只能在函数内部使用test()
print(x) #变量x不存在,报错程序的执行结果为:
Traceback (most recent call last):
Hello PythonFile "C:\Users\wgx58\PycharmProjects\PythonProject1\hello.py", line 6, in <module>print(x) #变量x不存在,报错^
NameError: name 'x' is not defined
二、全局变量
全局变量是指在函数外定义的变量。该变量在整个函数中都有效,即它能够作用于函数内外。
全局变量的使用分为以下几种情况:
1、在函数内访问全局变量
虽然全局变量定义在函数外,但在函数内和函数外都可以访问该变量。
例如:
x="Hello Python"
def test():print(x) #变量x是全局变量,函数内部可以访问全局变量
test()
print(x)程序的执行结果为:
Hello Python
Hello Python
2、在函数内定义和全局变量同名的局部变量
在函数内定义和全局变量同名的局部变量,如果在函数内修改局部变量的值,则不影响全局变量。
例如:
x="Hello Python"
def test():x = "Hello World"print(x) #变量x是局部变量,修改局部变量的值不影响全局变量
test()
print(x)程序的执行结果为:
Hello World
Hello Python
3、在函数内修改全局变量
如果在函数内使用关键字global
对全局变量进行声明,那么在函数内部可以对全局变量的值进行修改。
格式如下:
global 变量名
例如:
x="Hello Python"
def test():global x #定义变量x为全局变量x = "Hello World"print(x)
test()
print(x)程序的执行结果为:
Hello World
Hello World