定義一個函數html
def function_name(形式參數):python
代碼塊函數
return 'Value' #若是沒有寫return,則默認返回Noneui
# 一個函數到return這一行就結束執行了,在return後面寫的東西不執行spa
function_name(實際參數) # 只有call這個函數的時候纔會執行函數裏面的代碼code
函數把功能提取了出來,提升效率減小代碼量htm
定義函數的時候,參數能夠有不止一個,能夠是普通參數,默認參數,動態參數。默認參數放在普通參數後面,動態參數放在最後面。blog
輸入實際參數的時候按照形式參數順序依次寫入,若是不按照順序,則須要把參數名加上寫入。io
默認參數能夠有默認值,輸入實際參數的時候能夠覆蓋默認值。ast
動態參數一般寫爲'*args'和'**kwargs'兩顆星號的放在後面,一顆星的參數算做一個tuple, 兩顆星的算做一個dict。
函數外部的變量爲全局變量,函數裏面是局部變量,python內置的爲內置變量。遵循local > global> built-in 的變量查找順序。
爲了便於區分,全局變量用全大寫。在函數內若是須要使用全局變量,須要在變量前加上global。
1 def top_movies(num=5, *args, **kwargs): 2 print(num) 3 print(args) 4 print(kwargs) 5 6 rank = (0, 1, 2, 3, 4, 5) 7 keywords = { '1': 'The Shawshank Redemption', '2':'Fight Club', '3':'Toy Stories', '4':'Radio Rock', '5':'Fantastic Mr. Fox'} 8 9 top_movies(*rank, **keywords) 10 11 ''' 12 運行後獲得結果: 13 0 14 (1, 2, 3, 4, 5) 15 {'1': 'The Shawshank Redemption', '5': 'Fantastic Mr. Fox', '2': 'Fight Club', '3': 'Toy Stories', '4': 'Radio Rock'} 16 參數第一個數字默認爲num, 雖然是在rank這個tuple裏面,剩餘的幾位爲args,最後爲kwargs。可見是嚴格按照指定參數順序來的。 17 若是不在實參前加上'*'和'**',輸入的參數會默認爲實際參數的第一個值。 18 '''
Reference:
想不起來說了什麼內容的時候,參考一下老師的教學筆記
http://www.cnblogs.com/wupeiqi/articles/5453708.html