# 作用域 > 原文: [https://pythonbasics.org/scope/](https://pythonbasics.org/scope/) 变量在程序中具有一定的作用。 全局变量可以在程序中的任何位置使用,但是局部变量仅在特定区域(函数,循环)中已知 有时在项目中使用“作用域”一词:“其不在项目作用域之内”,表示不包括在内。 同样,变量可以在函数作用域之外。 ## 示例: ### 简介 作用域与可以使用变量的位置有关。 如果定义了变量,则不一定在代码中的任何地方都可用。 函数中定义的变量只有在函数中才知道,除非您将其返回。 ```py def something(): localVar = 1 # this will crash because localVar is a local variable print(localVar) ``` 这意味着除非您从函数返回变量,否则只能在其中使用它们。 这与全局变量形成了鲜明的对比:全局变量可以在任何地方使用,包括在多个函数和主代码中。 全局变量通常在程序顶部定义。 ### 全局变量和局部变量 在下面的程序中,`balance`是一个全局变量。 它可以在代码中的任何地方使用。 但是变量`x`只能在`addAmount`内部使用。 ```py #!/usr/bin/env python3 balance = 0 def addAmount(x): global balance balance = balance + x addAmount(5) print(balance) ``` 在视觉上是: ![scope](img/88e7ac055172b8f704169b613c7f4b7f.jpg) 我们有两个变量:`balance`,一个可以在任何地方使用的全局变量。`x`,只能在函数内部使用(在局部作用域之外未知)。 ## 练习 请尝试以下练习: 1. 添加函数`subAmount`以更改变量余额 2. 创建带有局部变量的函数 [下载示例](https://gum.co/dcsp)