首页 > 代码库 > python学习-day15:局部变量与全局变量、嵌套函数、递归

python学习-day15:局部变量与全局变量、嵌套函数、递归

一、全局变量与局部变量

  在子程序中定义的变量称为局部变量,

在程序的一开始定义的变量称为全局变量。

全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
通过在函数内部,先添加一个 global  name    相当于在子模块定义了一个全局变量。把局部的name扩到到全局变脸,后续name的变化,也是全局的!
name=lhf
def change_name():
    #global name
    name=帅了一比
    print(change_name,name)
change_name()
print(name)

>>>
change_name 帅了一比
lhf
name=lhf
def change_name():
    global name
    name=帅了一比
    print(change_name,name)
change_name()
print(name)

>>>
change_name 帅了一比
帅了一比

局部变量:在私人的小圈子内才可以被引用到。

全局变量:所有人都可以获得值, 

技术分享

 

NAME = "杠娘"
def yangjian():
        # NAME = "史正文"
    global NAME
        #NAME = "小东北"
    print(我要搞, NAME)

def qupengfei():
    NAME = ""
    print(我要搞, NAME)
yangjian()
qupengfei()    

>>>>
我要搞 杠娘
我要搞 基
NAME = "杠娘"
def yangjian():
    # NAME = "史正文"
    global NAME       NAME变为全局变量
    NAME = "小东北"
    print(我要搞, NAME)

def qupengfei():
    #NAME = "基"
    print(我要搞, NAME)
yangjian()
qupengfei()

>>>>
我要搞 小东北
我要搞 小东北
NAME = ["产品经理", "廖波湿"]
def qupengfei():
    global NAME
    NAME = ["阿毛"]
    NAME.append(XXOO)
    print(我要搞, NAME)
qupengfei()
>>>
我要搞 [阿毛, XXOO]

总结:

全局变量变量名大写

局部变量变量名小写

优先读取局部变量,能读取全局变量,无法对全局变量重新赋值 NAME=“fff”,

# 但是对于可变类型,可以对内部元素进行操作
# 如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值 NAME=“fff”

二、函数的嵌套

技术分享

 

python学习-day15:局部变量与全局变量、嵌套函数、递归