Python從零開始系列連載(26)——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特色數據類型(集合)(下)
AV8D
國慶玩的爽不
是不是刷刷朋友圈就像看遍了祖國大好河山~
說好的此地空餘黃鶴樓,結果黃鶴樓被人山人海包圍啦, 空餘 兩字沒體現出啊!
已經6天沒更新啦~
收收心,該繼續學習啦
函數
說到函數,如果你沒有編程基礎,可能馬上會想到初高中學過的:
y = f(x)
例如:y = x +1
當我們 x = 1時,y = 2
x = 2,y = 3
小明:老濕,我們不是初中生!
函數可以將問題簡化,我們可以重複使用這個函數解決 y = x + 1 這一類問題
所以,函數就是那些做成重複使用的程序代碼
函數的定義
函數是由函數名、參數和函數體組成,格式如下:
def 函數名(形式參數):
函數體
[ return 返回值 ]
def是系統關鍵字,之後的文章會系統講一下,這裡只要知道這個是用來定義函數的
如果是你自己定義函數,函數名要符合變數命名規則,並且不能是系統關鍵字(在jupyter中,打出系統關鍵字是綠色的)
例如,我們定義一個求兩個數的和的函數:
看,這裡的 def 和 return 是綠色的,也就是系統關鍵字
這裡函數名是add(英語是求和的意思)
然後有兩個形式參數,a和b
函數體部分執行的是 c = a +b
最後函數返回的是 c 的值
這就完成了一個求和函數的定義
函數的調用
函數的調用很簡單,我們只要根據函數的定義形式
將實際計算時的參數值傳進去就行(也可能沒有參數)
函數調用格式:
函數名(實際參數)
這裡的 add(3,4) 就是函數調用
實際參數分別是 3 和 4
當函數調用發生時,才開始執行函數的內容
即給 a 賦值為 3 , b 賦值為 4
然後計算出 c = 7
最後返回 c 的值 7
函數調用寫的參數是實際參數(『實際』體現在參數是實際執行函數使用的)
函數定義寫的參數是形式參數(『形式』體現在他只是個格式和形式,真正函數執行時候還是先看實際參數)
其實,Python有很多內置函數,例如我們之前課程常常使用的print()
print()函數是內置的,所以不用定義
內置:安裝好Python就有的
還記得以前手機很多內置吸費軟體么
點進去xxx軟妹幣就沒了,手機簡訊提示欠費了
參數的傳遞
函數調用時候,是將實際參數傳遞給形式參數
函數參數的傳遞方法有很多
1.參數按照位置順序傳遞
剛才的add函數就是這種,按順序,3傳遞給a,4傳遞給b
2.參數按賦值傳遞
這裡定義了一個兩數相減的函數
注意到函數調用時候,指明了 b = 4 , a = 3
是一種賦值,所以這裡的就和上個相加的例子中順序傳遞參數不一樣了
3.參數按照默認值傳遞
有時候,可以在函數定義里給函數形參設定一個默認值
當函數實參沒有傳遞值進來,就使用默認值
這裡在定義函數時候,給形參 b 設置了默認值 2
然後調用函數時候,只傳遞了一個參數值 4
則python默認將 4 傳遞給 a,因為在定義時候給 b 設定了默認值 2
當然,當傳入的參數是兩個時候,則覆蓋掉默認值,即不使用定義時候的默認參數值
4.(難點)元組類型的變長度參數傳遞
我們寫個列印輸出的函數
如果我們要列印三個數怎麼辦?
小明:老濕,我知道!我們可以這樣!
小明:
很好!小明,如果我們要列印1000個數呢
小明:emmmm
、
【敲黑板】
我們可以定義一個變長參數,可長可短,你懂的!【壞笑
小明: 這不是去幼兒園的車!我要下車!
我們可以在參數前面加一個星號 * ,表示這個參數是可變長參數
當其他參數賦值完畢時候,剩下的參數依次賦值給這個可變長參數
所以剛才的可以這樣實現:
但是,注意到沒有,這裡的 b 是元組 (2,3)
所以你執意要列印出,可以提前修改函數的列印功能
這就通用了,不信你試試:
相當於將字典的每個元素依次拿出來
5.(難點)字典類型的變長度參數傳遞
我們可以在參數前面加兩個星號 ** ,表示這個參數是可變長參數
是以 實參名=字典值的方式傳遞
例如剛才的例子,我們改一下
注意到,字典類型變長參數傳遞一定是賦值形式傳遞進去的
當然,元組和字典形式變長參數也可能用不到,例如:
這樣,列印出的就是空元祖和空字典啦~
如果你執意要實現那種列印形式,我們就改一下函數:
c [ j ] 指的是列印 j 這個鍵對應的值,如果不這樣寫,結果會是這樣,列印出的是鍵:
注意,可變參數的位置一般寫在最後,不能亂了順序,否則會報錯!!!
今天作業是自己跟著操作一遍~
自己不敲代碼永遠學不會寫代碼
下課
人生苦短,我選Python
未完待續,連載中......
現在還堅持再看連載學習的你們真的很棒棒!
入門部分已經學完大部分啦!加油
作者:王大偉 Python愛好者社區唯一小編,請勿轉載,謝謝。
出處:Python從零開始系列連載(26)--Python特色數據類型(函數)(上) 配套視頻教程:Python3爬蟲三大案例實戰分享:貓眼電影、今日頭條街拍美圖、淘寶美食 Python3爬蟲三大案例實戰分享 公眾號:Python愛好者社區(微信ID:python_shequ),關注,查看更多連載內容。加小編個人微信:tsdatajob ,跟作者互動,一起探討。
推薦閱讀:
※Python數據分析及可視化實例之Pandas函數速查表
※Python編程(bbb四):兩個實用的Python的裝飾器
※用Python寫個彈球的遊戲
※[17] Python循環語句(四)
※我的Live -- 爬蟲從入門到進階