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 -- 爬蟲從入門到進階

TAG:Python | Python教程 | Python入门 |