Python局部、全局、Global变量

一、任务描述

  本实验任务主要对Python的局部、全局变量进行一些基本操作,通过完成本实验任务,要求学生熟练掌握Python的局部、全局变量。并对Python局部、全局变量的基本操作进行整理并填写工作任务报告。

二、任务目标

1、掌握Python的局部变量

2、掌握Python的全局变量

3、掌握Python的Global变量

三、任务环境

Ubuntu16.04、Python2.7

四、任务分析

  全局变量与局部变量两者的本质区别就是在于作用域。用通俗的话来理解的话,全局变量是在整个py文件中声明,全局范围内都可以访问。局部变量是在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地方调用,程序就爆掉了。如果在函数内部定义与某个全局变量一样名称的局部变量,就可能会导致意外的效果。因此不建议这样使用,这样会使得程序很不健全。

 ♥ 温馨提示
在函数中,如果想给全局变量赋值,则需要用关键字global声明。

五、任务步骤

步骤1、环境准备

  右击Ubuntu操作系统桌面,从弹出菜单中选择【Open in Terminal】命令打开终端。

  通过【cd /home】切换到home目录下。【ls】查看该目录下的多有内容。

图1 切换目录

【mkdir variable】在home目录下创建variable文件夹。

图2 创建文件夹

步骤2、局部变量

  函数内部的变量名如果第一次出现,且出现在=前面,即被视为定义一个局部变量,不管全局域中有没有用到该变量名,函数中使用的将是局部变量。

  【cd variable】切换到variable目录下,【vim var1.py】回车后创建并编辑名为var1的Python文件。

图3 创建Python文件

  回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。

  定义全局变量num,函数func内部定义局部变量num,通过main方法调用函数func()。

图4 编辑Python文件

  编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python var1.py】执行var1的Python文件。

  根据输出的结果判断函数中定义的num局部变量会将全局变量覆盖。

图5 运行Python文件

  再次进入var1.py文件编辑状态,修改程序。

图6 编辑Python文件

  再次运行var1.py程序出现‘num’没有被定义的错误。

  错误提示局部变量num在赋值前被应用,也就是该变量没有定义就使用它,由此再次证明了这里定义了一个局部变量,而不是使用的全局的num。

图7 运行Python文件

步骤3、全局变量

  函数内部的变量名如果第一次出现,且出现在=后面,且该变量在全局域中已定义,则这里将引用全局变量,如果该变量在全局域中没有定义,当然会出现“变量未定义”的错误。

  【vim var2.py】回车后创建并编辑名为var2的Python文件。

图8 创建Python文件

  回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。

  定义全局变量num,函数func内部定义x = num + 100,通过main方法调用函数func()。

图9 编辑Python文件

  编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python var2.py】执行var2的Python文件。

  根据输出的结果判断函数中使用的num是全局变量num。

  只要是使用变量,而该变量在全局域中有定义,而在局部没有定义,则会使用全局变量。

图10 运行Python文件

  再次进入var2.py文件编辑状态,修改程序。

  在函数内部定义局部变量num = 50。

图11 编辑Python文件

  再次运行var2.py文件,根据结果得知使用的变量在全局域中有定义,在局部域中也有定义,则默认会使用局部变量。

图12 运行Python文件

步骤4、global变量

  在函数中,如果想给全局变量赋值,则需要用关键字global声明。

  【vim var3.py】回车后创建并编辑名为var3的Python文件。

图13 创建Python文件

  回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。

  定义全局变量num,函数func内部为num变量添加global,修改全部变量num,通过main方法依次调用函数func(),全部变量num。

图14 编辑Python文件

  编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python var3.py】执行var3的Python文件。

  根据结果判断函数中给num赋值为200是修改的全局变量,而且这里没有定义新的局部变量。

图15 运行Python文件

  再次进入var3.py文件编辑状态,修改程序。

  添加num += 60,修改num的值。

图16 编辑Python文件

  再次运行var2.py文件,根据结果判断后续操作num也是操作的全局变量。

图17 运行Python文件

猜你喜欢

转载自www.cnblogs.com/yu-1104/p/9050495.html
今日推荐