- 零基礎(chǔ)學(xué)Python編程(少兒趣味版)
- 溪溪爸爸
- 781字
- 2020-11-04 16:41:54
1.9.3 函數(shù)調(diào)用
菲菲兔仔細(xì)想了想,回過(guò)神來(lái)了,說(shuō):“我知道了。因?yàn)橛胐ef只是定義了一個(gè)函數(shù)。我們還沒(méi)有使用它呀!”說(shuō)著,她在運(yùn)行過(guò)程序的IDLE提示符后輸入了以下代碼:
>>> add1() 計(jì)算兩個(gè)數(shù)的和 輸入第一個(gè)數(shù): 5.555 輸入第二個(gè)數(shù): 6.666 5.555000+6.666000=12.221000 計(jì)算完畢
使用函數(shù)也稱作函數(shù)的調(diào)用。當(dāng)程序執(zhí)行到函數(shù)調(diào)用的地方時(shí),程序就轉(zhuǎn)向函數(shù)內(nèi)部執(zhí)行,直到函數(shù)體代碼執(zhí)行完畢,再返回函數(shù)調(diào)用的后面一行代碼繼續(xù)執(zhí)行。函數(shù)調(diào)用和返回的過(guò)程如圖1-23所示。箭頭表示了程序中語(yǔ)句執(zhí)行的順序。
函數(shù)也可以寫成更簡(jiǎn)單的形式。在上述代碼后面創(chuàng)建另一個(gè)函數(shù),叫作add2(a, b),代碼如下:
def add2(a,b): return float(a)+float(b) #返回值
函數(shù)add2有兩個(gè)參數(shù)a和b,而且函數(shù)中使用了關(guān)鍵字return,return的后面就是需要返回的值,也叫作函數(shù)值。這個(gè)函數(shù)的函數(shù)體雖然只有一行,但是已經(jīng)可以解決問(wèn)題了。
在定義完函數(shù)以后就可以使用它們了。比如在文件后面輸入以下代碼:
#調(diào)用函數(shù) add1() print('================分隔線================') print("計(jì)算兩個(gè)數(shù)的和") #從鍵盤輸入一個(gè)數(shù) m=float(input("輸入第一個(gè)數(shù): ")) #再?gòu)逆I盤輸入一個(gè)數(shù) n=float(input("輸入第二個(gè)數(shù): ")) print(add2(m,n))
代碼中add1()和add2(a, b)兩處分別調(diào)用了add1和add2函數(shù)。運(yùn)行程序,結(jié)果如圖1-24所示。
函數(shù)調(diào)用時(shí)有3條規(guī)則需要注意:
1)調(diào)用時(shí)參數(shù)個(gè)數(shù)要與函數(shù)定義時(shí)的個(gè)數(shù)一致。比如add2(a, b)定義中有兩個(gè)參數(shù),那么調(diào)用時(shí)也要給兩個(gè)參數(shù),比如add2(3, 4)。
2)調(diào)用時(shí)參數(shù)的類型要符合函數(shù)定義時(shí)的要求。但是Python函數(shù)定義時(shí)并不會(huì)明顯地指出需要的參數(shù)類型,只在函數(shù)體中體現(xiàn)。所以調(diào)用函數(shù)前一定要弄清參數(shù)的類型,以免出錯(cuò)。比如使用add2('m', 'n')調(diào)用函數(shù),肯定會(huì)出錯(cuò):
>>> add2('m','n') Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> add2('m','n') File "C:\Workspace\1.9\def_func.py", line 14, in add2 return float(a)+float(b) #返回a+b的值 ValueError: could not convert string to float: 'm'
因?yàn)楹瘮?shù)體中需要將兩個(gè)參數(shù)都轉(zhuǎn)換成浮點(diǎn)型,顯然字符串不能被成功轉(zhuǎn)換。
3)調(diào)用時(shí)參數(shù)的順序也需要和函數(shù)定義時(shí)一致。比如add2(3, 4)調(diào)用函數(shù)時(shí),3就會(huì)賦值給參數(shù)a,4就會(huì)賦值給參數(shù)b。
“函數(shù)在Python程序中隨處可見,我們以后還會(huì)遇到更多的函數(shù)!”
- 自己動(dòng)手實(shí)現(xiàn)Lua:虛擬機(jī)、編譯器和標(biāo)準(zhǔn)庫(kù)
- 人臉識(shí)別原理及算法:動(dòng)態(tài)人臉識(shí)別系統(tǒng)研究
- Java程序設(shè)計(jì):原理與范例
- Processing創(chuàng)意編程指南
- Building Dynamics CRM 2015 Dashboards with Power BI
- Java 9 Programming By Example
- R語(yǔ)言數(shù)據(jù)挖掘:實(shí)用項(xiàng)目解析
- Apache Solr PHP Integration
- Java設(shè)計(jì)模式深入研究
- Serverless工程實(shí)踐:從入門到進(jìn)階
- 生成藝術(shù):Processing視覺(jué)創(chuàng)意入門
- CISSP in 21 Days(Second Edition)
- Swift編程實(shí)戰(zhàn):iOS應(yīng)用開發(fā)實(shí)例及完整解決方案
- Java EE應(yīng)用開發(fā)及實(shí)訓(xùn)
- Switching to Angular 2