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】查看该目录下的多有内容。
【mkdir variable】在home目录下创建variable文件夹。
步骤2、局部变量
函数内部的变量名如果第一次出现,且出现在=前面,即被视为定义一个局部变量,不管全局域中有没有用到该变量名,函数中使用的将是局部变量。
【cd variable】切换到variable目录下,【vim var1.py】回车后创建并编辑名为var1的Python文件。
回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。
定义全局变量num,函数func内部定义局部变量num,通过main方法调用函数func()。
编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python var1.py】执行var1的Python文件。
根据输出的结果判断函数中定义的num局部变量会将全局变量覆盖。
再次进入var1.py文件编辑状态,修改程序。
再次运行var1.py程序出现‘num’没有被定义的错误。
错误提示局部变量num在赋值前被应用,也就是该变量没有定义就使用它,由此再次证明了这里定义了一个局部变量,而不是使用的全局的num。
步骤3、全局变量
函数内部的变量名如果第一次出现,且出现在=后面,且该变量在全局域中已定义,则这里将引用全局变量,如果该变量在全局域中没有定义,当然会出现“变量未定义”的错误。
【vim var2.py】回车后创建并编辑名为var2的Python文件。
回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。
定义全局变量num,函数func内部定义x = num + 100,通过main方法调用函数func()。
编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python var2.py】执行var2的Python文件。
根据输出的结果判断函数中使用的num是全局变量num。
只要是使用变量,而该变量在全局域中有定义,而在局部没有定义,则会使用全局变量。
再次进入var2.py文件编辑状态,修改程序。
在函数内部定义局部变量num = 50。
再次运行var2.py文件,根据结果得知使用的变量在全局域中有定义,在局部域中也有定义,则默认会使用局部变量。
步骤4、global变量
在函数中,如果想给全局变量赋值,则需要用关键字global声明。
【vim var3.py】回车后创建并编辑名为var3的Python文件。
回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。
定义全局变量num,函数func内部为num变量添加global,修改全部变量num,通过main方法依次调用函数func(),全部变量num。
编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python var3.py】执行var3的Python文件。
根据结果判断函数中给num赋值为200是修改的全局变量,而且这里没有定义新的局部变量。
再次进入var3.py文件编辑状态,修改程序。
添加num += 60,修改num的值。
再次运行var2.py文件,根据结果判断后续操作num也是操作的全局变量。