函數(shù)就好比是你厭倦了重復(fù)差不多內(nèi)容的功能狱意,這些功能都會(huì)耗費(fèi)很多同樣的代碼焕檬。
為了簡(jiǎn)潔起見(jiàn),可以把這些內(nèi)容都封裝為函數(shù)别凤。這樣偎行,只要一行就可以實(shí)現(xiàn)原來(lái)很多行代碼的功能川背。這些函數(shù)還可以根據(jù)傳遞的不同命令內(nèi)容來(lái)決定具體函數(shù)的功能贰拿。這些命令內(nèi)容叫參數(shù)。
有時(shí)候,你預(yù)先不知道函數(shù)需要接受多少個(gè)實(shí)參,好在Python允許函數(shù)從調(diào)用語(yǔ)句中收集任意數(shù)量的實(shí)參熄云。
python大大的圖
我的圖
這是一個(gè)制作比薩的函數(shù)膨更,它需要接受很多配料,但你無(wú)法預(yù)先確定顧客要多少種配料缴允。形參名*toppings中的星號(hào)讓Python創(chuàng)建一個(gè)名為toppings的空元組荚守,并將收到的所有值都封裝在這個(gè)元組中。
Python能夠處理使用一個(gè)值調(diào)用函數(shù)的情形练般,也能處理使用三個(gè)值來(lái)調(diào)用函數(shù)的情形矗漾。它以類(lèi)似的方式處理不同的調(diào)用,注意薄料,Python將實(shí)參封裝到一個(gè)元組中敞贡,即便函數(shù)只收到一個(gè)值也是如此。
第八行直接規(guī)定要取出元組中的第一個(gè)和第二個(gè)元素摄职,但是很明顯在pepperoni這個(gè)元組中只有一個(gè)元素誊役,因此會(huì)報(bào)錯(cuò)說(shuō)元組索引超出范圍。根本就沒(méi)有toppings[1]這個(gè)元素嘛谷市!
但是如果元組中元素確保大于等于2的時(shí)候就不會(huì)有這樣的問(wèn)題