Python從零開始系列連載(27)——Python特色數據類型(函數)(中)
前言
前文傳送門:
Python從零開始系列連載(1)——安裝環境
Python從零開始系列連載(2)——jupyter的常用操作(上)
Python從零開始系列連載(3)——jupyter的常用操作(中)
Python從零開始系列連載(4)——jupyter的常用操作(下)
Python從零開始系列連載(5)——Python的基本數據類型(上)
Python從零開始系列連載(6)——Python的基本數據類型(中)
Python從零開始系列連載(7)——Python的基本數據類型(中二)
Python從零開始系列連載(8)——Python的基本數據類型(下)
Python從零開始系列連載(9)——Python的基本運算和表達式(上)
Python從零開始系列連載(10)——Python的基本運算和表達式(中)
Python從零開始系列連載(11)——Python的基本運算和表達式(中二)
Python從零開始系列連載(12)——Python的基本運算和表達式(下)
Python從零開始系列連載(13)——Python程序的基本控制流程(上)
Python從零開始系列連載(14)——Python程序的基本控制流程(中)
Python從零開始系列連載(15)——Python程序的基本控制流程(中二)
Python從零開始系列連載(16)——Python程序的基本控制流程(下)
Python從零開始系列連載(17)——Python特色數據類型(列表)(上)
Python從零開始系列連載(18)——Python特色數據類型(列表)(中)
Python從零開始系列連載(19)——Python特色數據類型(列表)(下)
Python從零開始系列連載(20)——Python特色數據類型(元組)(上)
Python從零開始系列連載(21)——Python特色數據類型(元組)(下)
Python從零開始系列連載(22)——Python特色數據類型(字典)(上)
Python從零開始系列連載(23)——Python特色數據類型(字典)(下)
Python從零開始系列連載(24)——Python特色數據類型(集合)(上)
Python從零開始系列連載(25)——Python特色數據類型(集合)(下)
Python從零開始系列連載(26)——Python特色數據類型(函數)(上)
無返回值的函數
之前說了好多,都是有返回值的函數,那有沒有沒返回值的函數呢?
這個可以有!
函數中變數的作用域
變數的作用域就是在程序中能對這個變數操作的區域範圍
有點像初高中學的函數的定義域
Python允許同名變數的出現
讓我們看個例子:
我們調用dayin_outer( )
這裡列印的 a 的值是 2
注意的dayin_inner( ) 函數只是定義了,並沒有調用,所以不會運行這個dayin_inner( )的函數體
我們稍微修改一下:
這樣就可以了
注意到,a變數分別有三次賦值,這裡的賦值不是覆蓋了,因為他們三個a是在不同的位置
第一個a是在函數外面,我們稱之為全局變數(即它的作用域是全局的)
比如我們改一下程序:
這時候,外面的a就列印出來了!
當然,與之相對的,第二個和第三個a就成為局部變數
而且這個dayin_inner( ) 函數是被嵌套在 dayin_outer( ) 中的
值為 1 的 a 的作用範圍是dayin_outer( )外層函數中
值為 2 的 a 的作用範圍是dayin_outer( )內層函數中
當我們要使用變數時候,現在最近的區域搜索
我們修改一下程序:
當我們把 a = 1 注釋掉
則外層函數列印 a 的時候,取的全局變數
因為內層函數的作用域只在內層函數中,不能延伸到外層函數
我們再改一下程序:
把內層函數里的 a 注釋掉
則內層函數使用的 a 是外層函數定義的 a
因為,外層函數距離內層函數比全局變數距離內層函數更近
如果外層函數沒有定義 a ,則會去取全局變數
是不是又想起了俄羅斯套娃。。。
注意:不要將變數的作用域和變數重複賦值覆蓋搞混
我們看個例子:
注意這裡全局變數只有一個 a
他的值是 4,因為 0 被覆蓋了
今天作業是自己跟著操作一遍~
自己不敲代碼永遠學不會寫代碼
下課
人生苦短,我選Python
未完待續,連載中......
現在還堅持再看連載學習的你們真的很棒棒!
入門部分已經學完大部分啦!加油
作者:王大偉 Python愛好者社區唯一小編,請勿轉載,謝謝。
出處:Python從零開始系列連載(27)--Python特色數據類型(函數)(中) 配套視頻教程:Python3爬蟲三大案例實戰分享:貓眼電影、今日頭條街拍美圖、淘寶美食 Python3爬蟲三大案例實戰分享 公眾號:Python愛好者社區(微信ID:python_shequ),關注,查看更多連載內容。加小編個人微信:tsdatajob ,跟作者互動,一起探討。
推薦閱讀:
※Python數據分析之讀取文件
※R語言中不能進行深度學習?
※黃哥Python,從一個簡單問題說起
※量化策略系列教程:04阿爾法策略