定义:

局部变量是在函数内部定义的变量,只能在函数内部使用。

全局变量是在函数外部定义的变量(没有定义在某一个函数内),所有函数内部都可以使用这个变量。

注意: 在其他的开发语言中,大多不推荐使用全年变量,因为可变范围太大,导致程序不好维护。

局部变量:

  1. 局部变量是在函数内部定义的变量,只能在函数内部使用
  2. 函数执行完成后,函数内部的局部变量,会被系统回收
  3. 不同的函数,可以定义相同的名字的局部变量,但是彼此之间不会产生影响

局部变量的作用

在函数内部使用,临时保存函数内部需要使用的数据

一、局部变量只能在函数内部使用

通过代码来演示一下,在函数内部定义的变量不能在函数外部被使用

def demo1():
    # 定义一个局部变量
    num = 100
    print("在函数demo1中的变量是%d" % num)

# 调用函数
demo1()

以上是没有任何问题的一串代码,执行结果是: 在函数demo1中的变量是100

下面开始尝试一下,能否在函数的外部用这个num变量呢?

for中的局部变量 python python局部变量定义_for中的局部变量 python

 

可以看出,在打印num这个变量的时候PyCharm就已经提示我们代码出错了,然而我们为了进一步验证不能打印出num变量,再看下执行的报错结果,没有定义num这个变量。如下图:

for中的局部变量 python python局部变量定义_调用函数_02

 

 结论:在函数内部定义的变量不能在其他位置使用

再看下在其他函数的内部能否使用num这个变量呢?

for中的局部变量 python python局部变量定义_python_03

 

同样在PyCharm中已经红线提示了有错误,再代用函数demo2运行看看下效果同样报错了,如下图:

for中的局部变量 python python局部变量定义_for中的局部变量 python_04

 

以上报错信息可以看出,第一个报错信息告诉我们出错在代码的第11行调用函数demo2,第二个报错信息说在代码的第7行在函数demo2中找不到变量num

此时我们注释掉demo2里的代码块,会提示我们缩进代码错误:IndentationError: expected an indented block,此时我们利用pass这个占位符来保证函数体代码结构的完整,此时程序又能正常的运行了。

for中的局部变量 python python局部变量定义_调用函数_05

for中的局部变量 python python局部变量定义_生命周期_06

 

 

二、局部变量的生命周期

定义:所谓生命周期就是变量从创建到被系统回收的过程。

(把创建比作出生,把系统回收比较死亡,生命周期好比一个人从出生到死亡的这一段过程)

局部变量在函数执行时才会被创建,函数执行结束后局部变量被系统回收。

局部变量在生命周期内,可以用来存储函数内部临时使用到的数据。

可以利用在代码中的debugger来看看函数的整个执行过程。首先在函数demo1前打个断点。

for中的局部变量 python python局部变量定义_生命周期_07

 

第3行代码被执行完成之后就可以看到num这个变量了,然后执行到第四行代码完成后这个函数就执行完成了,num变量也被回收了。

for中的局部变量 python python局部变量定义_python_08

 

三、不同函数内的同名局部变量

不同的函数,可以定义相同的名字的局部变量,但是彼此之间不会产生影响

def demo1():
    # 定义一个局部变量
    num = 100
    print("在函数demo1中的变量是%d" % num)
    
def demo2():
    num = 99
    print("在函数demo2中的变量是%d" % num)
    
# 调用函数
demo1()
demo2()

执行结果:

for中的局部变量 python python局部变量定义_python_09

 

以上两个函数中的相同名字的变量num之间没有任何的关系,好比两个班级中各有一个相同的名字的同学一样,他们在各自的班级之间互不干扰影响。

以上是局部变量的全部介绍,后面主要介绍全局变量,这些都属于python基础教程,如果你没有一点编程方面的基础我想这个也是能看得懂的,如果不懂可以私信留言。