区别: 定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。 访问范围 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。 对于全局变量和局部变量,即使变量名相同,但是因为定义在不同的作用域内,其本质上也是不同的变量。 实例:局部变量和全局变量的对比,并输出结果。 具体实现: total = 0 # 这是一个全局变量 def sum( arg1, arg2 ): #返回2个参数的和. total = arg1 + arg2 # total在这里是局部变量. print ("函数内是局部变量 : ", total) return total #调用sum函数 sum( 10, 20 ) print ("函数外是全局变量 : ", total) 在Python编程语言中,了解和正确使用局部变量与全局变量是非常重要的基础知识。它们的主要区别在于作用域和可访问性。 **局部变量(Local Variables)**: 局部变量是在函数内部定义的,只在该函数的代码块中有效。当函数被调用时,它会创建一个新的局部作用域,在这个作用域内声明的变量只存在于函数执行的过程中,一旦函数执行完毕,这些局部变量就会被销毁。因此,局部变量不能在函数外部被访问。在上面的实例中,`sum`函数内的`total`变量就是一个局部变量。当`sum(10, 20)`被调用时,`total = arg1 + arg2`这一行创建了局部变量`total`,并将其值设置为30。在函数内部,`print ("函数内是局部变量 : ", total)`将输出30,但这个`total`只存在于函数的执行过程中。 **全局变量(Global Variables)**: 全局变量是在函数外部定义的,可以在整个程序的任何地方被访问,除非被局部变量覆盖。在上述实例中,`total = 0`就是全局变量,它在函数外部定义,可以在程序的任何地方使用。然而,当`sum`函数内部也定义了一个名为`total`的变量时,虽然变量名相同,但它们是两个不同的实体。函数内部的`total`是局部变量,而函数外部的`total`仍然是全局变量。在`sum`函数执行后,全局变量`total`的值并没有改变,因此`print ("函数外是全局变量 : ", total)`将输出0。 **作用域(Scope)**: 作用域是变量存在的区域。Python有三种主要的作用域: 1. **局部作用域(Local Scope)**:如前所述,仅在函数内部有效的变量。 2. **全局作用域(Global Scope)**:在所有函数外部定义的变量,可以被整个程序访问。 3. **内置作用域(Built-in Scope)**:Python预定义的一些特殊名称,如`print`、`len`等。 **全局变量和局部变量的交互**: 如果在函数内部想要修改全局变量的值,可以使用`global`关键字。例如: ```python total = 0 def update_total(): global total # 声明total为全局变量 total += 1 update_total() print(total) # 输出:1 ``` 在这个例子中,`total`在`update_total`函数内部被声明为全局变量,因此它的值在函数执行后被更新。 总结,理解局部变量和全局变量的区别以及它们如何在不同作用域中工作,有助于编写清晰、无误的Python代码。在编写程序时,应该谨慎使用全局变量,因为它们可能会导致难以追踪的错误,特别是在大型项目中。通常,推荐使用局部变量来保持代码的封装性和可维护性。
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 363
- 资源: 1万+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)