1. 建立函數數據結構
def 函數名(參數):ide
函數體函數
return 值spa
2. 文檔化函數遞歸
def square(x):作用域
'calculate the square of the number'文檔
return x*x字符串
給函數寫文檔讓別人容易理解,能夠加入註釋(以#開頭),或者直接寫上文檔字符串it
文檔字符串能夠按照以下方式訪問:class
square.__doc__
'calculate the square of the number' 或者用help內建函數
help(square)
3. 參數是能夠改變的。
當可變的數據結構作參數時,參數是能夠改變的,好比列表。
字符串,數字和元組是不可變的,既沒法被修改,也就是隻能用新的值覆蓋,這類作參數是不能被修改的。
4. 關鍵字參數和默認值
位置參數:跟位置有關係,位置不可變,可是當參數不少的時候,參數的順序是很難記住的,因此須要使用
關鍵字參數:就是提供參數的名字,這樣一來參數順序就沒有影響了,關鍵字參數最厲害的地方就是提供參數的默認值,當有默認值的時候,你就能夠只提供一些或者所有參數。
5. 收集參數
def print_params(*params)
print params
這參數中的星號的意思就是「收集其他位置的參數」,而後將值放置在同一個元組中,若是參數中有兩個星號,則返回的是參數的字典。
6. 參數收集的逆過程
調用函數時,使用星號或者雙星號來傳遞元組或者字典的值
實驗一:
params=(1,2)
def add(x,y)
return x+y
add(*params)
則輸出3
字典的調用也是相似的。
7. 做用域
局部變量:函數內的變量
全局變量:
在函數內部:globe x 聲明一個全局變量,注意:只有在須要的時候才使用全局變量;若是在函數內部訪問全局變量,並且只是讀取全局變量,是沒有問題的。
8. 遞歸
遞歸就是函數本身調用本身。