# 全局和局部变量 > 原文: [https://pythonspot.com/global-local-variables/](https://pythonspot.com/global-local-variables/) 变量有两种类型:**全局变量**和**局部变量**。 全局变量可以在代码中的任何位置访问,局部变量只能在[作用域](https://pythonspot.com/scope/)中访问。 ![global-local-variable](img/b096b6df86baa4af3f1d9b86a8b57af2.jpg) 可以在代码中的任何位置访问和修改**全局变量**(`x`),**局部变量**(`z`)仅存在于块 3 中。 ## 局部变量 局部变量只能在其作用域内达到。下面的示例有两个局部变量:`x`和`y`。 ```py def sum(x,y): sum = x + y return sum print(sum(8,6)) ``` 变量 x 和 y 只能在函数 sum 之内使用,而在函数外部则不存在。 局部变量不能在其作用域之外使用,此行将不起作用: ```py print(x) ``` ## 全局变量 全局变量可以在代码中的任何位置使用。 在下面的示例中,我们定义了全局变量z ```py z = 10 def afunction(): global z print(z) afunction() print(z) ``` 全局变量`z`可以在整个程序中,函数内部或外部使用。可以在函数内部修改全局变量,并为整个程序进行更改: ```py z = 10 def afunction(): global z z = 9 afunction() print(z) ``` 调用 afunction()之后,将更改整个程序的全局变量。 ## 练习 局部变量和全局变量可以在同一程序中一起使用。尝试确定该程序的输出: ```py z = 10 def func1(): global z z = 3 def func2(x,y): global z return x+y+z func1() total = func2(4,5) print(total) ``` [下载 Python 练习](https://pythonspot.com/download-python-exercises/)