Python老男孩 day15 函数(二) 局部变量与全局变量
https://www.cnblogs.com/linhaifeng/articles/6113086.html
——————————————————————————————————————
五、局部變量與全局變量
在子程序中定義的變量稱為局部變量,在程序的一開始定義的變量稱為全局變量。
全局變量作用域是整個程序,局部變量作用域是定義該變量的子程序。
當全局變量與局部變量同名時:
在定義局部變量的子程序內,局部變量起作用;在其它地方全局變量起作用。
運行結果:
我的名字 lhf
運行結果:
我的名字 帥了一筆
lhf
運行結果:
我的名字 帥了一筆
帥了一筆
?
?運行結果:
我要搞 產品經理
我要搞 小東北
#如果函數的內容無global關鍵字
-有聲明局部變量
運行結果:
我要搞 自己
-無聲明局部變量
NAME = ["產品經理", "廖波濕"]def qupengfei():NAME.append('XXOO')print('我要搞', NAME)qupengfei()?
運行結果:
我要搞 ['產品經理', '廖波濕', 'XXOO']
#如果函數中有global關鍵字
-有聲明局部變量
NAME = ["產品經理","廖波濕"] def qupengfei():NAME = "自己"global NAMEprint('我要搞', NAME) qupengfei()運行結果:
報錯
SyntaxError: name 'NAME' is assigned to before global declaration
-無聲明局部變量
?
?運行結果:
我要搞 ['阿毛', 'XXOO']
*** 全局變量變量名大寫
*** 局部變量變量名小寫
?
#優先讀取局部變量,若無則只能讀取全局變量,無法對全局變量重新賦值
#但是對于可變類型,可以對內部元素進行操作
#如果函數中有global關鍵字,變量本質上就是全局變量,可讀取可賦值 NAME='fff'
?
NAME = '海風'def huangwei():name = "黃偉"print(name)def liuyang():name = "劉洋"print(name)def nulige():name = '滬指花'print(name)print(name)nulige()liuyang()print(name)huangwei()?
運行結果:
黃偉
劉洋
劉洋
滬指花
黃偉
解題思路:
?
name = "剛娘"def weihou():name = "陳卓"def weiweihou():global name #獲取的是全局的name,并沒有改變weihou()內的name = "陳卓"name = "冷靜"weiweihou()print(name) #所以輸出 陳卓print(name) weihou() print(name)運行結果:
剛娘
陳卓
冷靜
?
name = "剛娘"def weihou():name = "陳卓"def weiweihou():nonlocal name # nonlocal,指定上一級變量,如果沒有就繼續往上直到找到為止name = "冷靜"weiweihou()print(name)print(name) weihou() print(name)運行結果:
剛娘
冷靜
剛娘
轉載于:https://www.cnblogs.com/zhuhemin/p/9099571.html
總結
以上是生活随笔為你收集整理的Python老男孩 day15 函数(二) 局部变量与全局变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos7设置mongodb远程连接
- 下一篇: php中的foreach如何使用?