一:函數參數的介紹
1:可變和不可變參數
1.1:必選參數
1.2:默認參數
1.3:可變參數
1.4:關鍵字參數
第二個定義的函數會報錯,原因已經標注
二:變量作用域介紹
一個程序的所有的變量并不是在哪個位置都可以訪問的。訪問權限決定于這個變量是在哪里賦值的。
變量的作用域決定了在哪一部分程序你可以訪問哪個特定的變量名稱。兩種最基本的變量作用域如下:
1:全局變量:
2:局部變量:
2.1:
如果一個變量,既能在一個函數中使用,也能在其他的函數中使用,這樣的變量就是全局變量
如果要再函數中修改全局變量,使用global聲明。
2.2:局部變量,就是在函數內部定義的變量
不同的函數,可以定義相同的名字的局部變量,但是各用個的不會產生影響
局部變量的作用,為了臨時保存數據需要在函數中定義變量來進行存儲,這就是它的作用
2.3:如果全局變量的名字和局部變量的名字相同,那么使用的是局部變量
2.4:修改全局變量的方法以及常見的錯誤
小結:
1:在函數外邊定義的變量叫做全局變量
2:全局變量能夠在所以的函數中進行訪問
3:如果在函數中修改全局變量,那么就需要使用global進行聲明
4:如果全局變量的名字和局部變量的名字相同,那么使用的是局部變量的,
小技巧強龍不壓地頭蛇
三,遞歸函數
1:如果一個函數在內部不調用其它的函數,而是自己本身的話,這個函數就是遞歸函數。
2:滿足遞歸的條件:
??????????? 1:有循環的內容
???????????? 2:有跳出的條件
3:遞歸默認是有遞歸深度要求的。
以下給出兩個例子:斐波那契數列,整數的階乘,來幫助理解
四:匿名函數
1:用lambda關鍵詞能創建小型匿名函數。這種函數得名于省略了用def聲明函數的標準步驟。
2:lambda函數的語法只包含一個語句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
注意:
Lambda函數能接收任何數量的參數但只能返回一個表達式的值