定义:
局部变量是在函数内部定义的变量,只能在函数内部使用。
全局变量是在函数外部定义的变量(没有定义在某一个函数内),所有函数内部都可以使用这个变量。
注意: 在其他的开发语言中,大多不推荐使用全年变量,因为可变范围太大,导致程序不好维护。
局部变量:
1. 局部变量是在函数内部定义的变量,只能在函数内部使用
2. 函数执行完成后,函数内部的局部变量,会被系统回收
3. 不同的函数,可以定义相同的名字的局部变量,但是彼此之间不会产生影响
局部变量的作用
在函数内部使用,临时保存函数内部需要使用的数据
一、局部变量只能在函数内部使用
通过代码来演示一下,在函数内部定义的变量不能在函数外部被使用
代码语言:python代码运行次数:0复制def demo1():
# 定义一个局部变量
num = 100
print("在函数demo1中的变量是%d" % num)
# 调用函数
demo1()
以上是没有任何问题的一串代码,执行结果是: 在函数demo1中的变量是100
下面开始尝试一下,能否在函数的外部用这个num变量呢?
可以看出,在打印num这个变量的时候PyCharm就已经提示我们代码出错了,然而我们为了进一步验证不能打印出num变量,再看下执行的报错结果,没有定义num这个变量。如下图:
结论:在函数内部定义的变量不能在其他位置使用
再看下在其他函数的内部能否使用num这个变量呢?
同样在PyCharm中已经红线提示了有错误,再代用函数demo2运行看看下效果同样报错了,如下图:
以上报错信息可以看出,第一个报错信息告诉我们出错在代码的第11行调用函数demo2,第二个报错信息说在代码的第7行在函数demo2中找不到变量num
此时我们注释掉demo2里的代码块,会提示我们缩进代码错误:IndentationError: expected an indented block,此时我们利用pass这个占位符来保证函数体代码结构的完整,此时程序又能正常的运行了。
二、局部变量的生命周期
定义:所谓生命周期就是变量从创建到被系统回收的过程。
(把创建比作出生,把系统回收比较死亡,生命周期好比一个人从出生到死亡的这一段过程)
局部变量在函数执行时才会被创建,函数执行结束后局部变量被系统回收。
局部变量在生命周期内,可以用来存储函数内部临时使用到的数据。
可以利用在代码中的debugger来看看函数的整个执行过程。首先在函数demo1前打个断点。
第3行代码被执行完成之后就可以看到num这个变量了,然后执行到第四行代码完成后这个函数就执行完成了,num变量也被回收了。
三、不同函数内的同名局部变量
不同的函数,可以定义相同的名字的局部变量,但是彼此之间不会产生影响
代码语言:python代码运行次数:0复制def demo1():
# 定义一个局部变量
num = 100
print("在函数demo1中的变量是%d" % num)
def demo2():
num = 99
print("在函数demo2中的变量是%d" % num)
# 调用函数
demo1()
demo2()
执行结果:
以上两个函数中的相同名字的变量num之间没有任何的关系,好比两个班级中各有一个相同的名字的同学一样,他们在各自的班级之间互不干扰影响。
以上是局部变量的全部介绍,后面主要介绍全局变量,这些都属于python基础教程,如果你没有一点编程方面的基础我想这个也是能看得懂的,如果不懂可以私信留言。
文章借鉴来源:http://www.wakey.com.cn/document-column-python.html