python基础----day4(函数)

帅比萌擦擦* 提交于 2019-12-01 08:59:42

 

 

 

 

 


#####全局变量与局部变量########

1.全局变量:(顶头写,没有任何的缩进),在文件中任何位置都可以调用

2.局部变量:在子程序里定义的变量

   ####如果函数内容无global 关键字,优先读取局部变量,无法对全局变量重新赋值。如果没有局部变量,只能读取全局变量。

           ----有声明局部变量

def liuxiangyu():
    NAME = '刘翔宇'
    print('我要搞',NAME)
liuxiangyu()

 

 

         ------ 无声明局部变量,读取全局变量

NAME = ['SB','刘翔宇']

def liuxiangyu():
   # NAME = '刘翔宇'
    print('我要搞',NAME)
liuxiangyu()

 但是对于可变类型,可以对内部元素进行操作

           如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值

      ---无局部变量,直接读取全局变量

NAME = ['SB','刘翔宇']

def liuxiangyu():
    global NAME
    print('我要搞',NAME)
liuxiangyu()

 

     ---有局部变量,且局部变量在global关键字下方,该局部变量取代全局变量(局部变量在global关键字的上方,报错)

NAME = ['SB','刘翔宇']

def liuxiangyu():
    global NAME
    NAME = 'LI'
    print('我要搞',NAME)
liuxiangyu()

 

 

 

    

   

 

 

##########规则:全局变量变量名大写, 局部变量变量名小写   


name = '刘傻逼'

def liuxiangyu():
    name = '李奇好'
    def liuxiangyuyu():
        global name
        name = '冷静'
    liuxiangyuyu()
    print(name)

print(name)
liuxiangyu()
print(name)

 

 

name = '刘傻逼'

def liuxiangyu():
    name = '李奇好'
    def liuxiangyuyu():
        nonlocal name              #nonlocal ,指定上一级变量
        name = '冷静'
    liuxiangyuyu()
    print(name)

print(name)
liuxiangyu()
print(name)

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!