函數就好比是你厭倦了重復差不多內容的功能,這些功能都會耗費很多同樣的代碼。
為了簡潔起見,可以把這些內容都封裝為函數。這樣,只要一行就可以實現原來很多行代碼的功能。這些函數還可以根據傳遞的不同命令內容來決定具體函數的功能。這些命令內容叫參數。
有時候,你預先不知道函數需要接受多少個實參,好在Python允許函數從調用語句中收集任意數量的實參。
python大大的圖
我的圖
這是一個制作比薩的函數,它需要接受很多配料,但你無法預先確定顧客要多少種配料。形參名*toppings中的星號讓Python創建一個名為toppings的空元組,并將收到的所有值都封裝在這個元組中。
Python能夠處理使用一個值調用函數的情形,也能處理使用三個值來調用函數的情形。它以類似的方式處理不同的調用,注意,Python將實參封裝到一個元組中,即便函數只收到一個值也是如此。
第八行直接規定要取出元組中的第一個和第二個元素,但是很明顯在pepperoni這個元組中只有一個元素,因此會報錯說元組索引超出范圍。根本就沒有toppings[1]這個元素嘛!
但是如果元組中元素確保大于等于2的時候就不會有這樣的問題