python 3 基础之局部变量与全局变量

1、局部变量

  局部变量,就是在函数内部定义的变量;其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的;

  因为其作用范围只是在自己的函数内部,所以不同的函数可以定义相同名字的局部变量

  当函数调用时,局部变量被创建,当函数调用完成后这个变量就不能够使用了

# 定义一个函数
def my_func(a,b):
    num = a + b
    print(num)

my_func(23,23)
# 定义一个局部变量相同的第二个函数
def my_func2(a,b):
    num = a * b
    print(num)

my_func2(33,2)

  两个函数各自内部的变量num都可以在函数各自内部正常使用 :在函数内部定义的局部变量名可以和其他函数中的局部变量名相同 是不冲突的

2、全局变量

  全局变量和局部变量的区别在于作用域,全局变量在整个py文件中声明,全局范围内可以使用;局部变量是在某个函数内部声明的,只能在函数内部使用,如果超出使用范围(函数外部),则会报错

  当函数内出现局部变量和全局变量相同名字时,函数内部中的 变量名 = 数据 此时理解为定义了一个局部变量,而不是修改全局变量的值

# 全局变量
num = 1
# 函数
def num_func():
    # 局部变量
    num = 10
    print('函数内部',num)

num_func()

print('函数外面',num)

======================================
运行结果:

  函数内部 10
  函数外面 1

    函数内部如果使用一个变量 他先从函数内部找 如果有直接使用;函数内部没有找到 会到函数外面找(全局变量) 

    若一个全局变量在函数中使用,修改全局变量,需要声明,如下:

# 定义一个变量
num = 1
def my_func1():
    # 标识这函数内部不是定义一个局部变量 其实是对全局变量的进行修改
    global num
    # 对全局变量的值进行修改
    num = 20
    print("my_func1", num)
my_func1()
# 打印也是20
print("外面", num)
==============================================================
运行结果:

    my_func1 20
    外面 20

  如果在函数中出现  global +全局变量的名字 ,那么这个函数中即使出现和全局变量名相同的变量名 = 数据 也理解为对全局变量进行修改,而不是定义局部变量;执行过后,全局变量值也会改变。

  

  如果全局变量是列表类型,可以通过list的列表方法去对列表进行修改,并且可以不用global来声明,如下:

list_1 = [1,2,56,"list"]
def changeList():
    list_1.append("over")
    print(list_1)

changeList()
print(list_1)

 

posted @ 2020-07-05 14:31  吾言!  阅读(560)  评论(0编辑  收藏  举报