寫機器人必備 – 函式的操作
創建第一個函式
1 | def functionname([parameterlist]): |
functionname:函數名稱
parameterlist:可選參數,如有多個參數,須以”,”隔開
comments:可選參數,表示為函式指定註釋,通常表該函式功能
functionbody:可選參數,用於指定函式整體,如有返回值,可使用return字句返回
如想定義不做式的函式,可以使用pass做為佔位符
請注意,縮排問題
1 | # 此程式碼無法運行,是因為twoSum()函式還沒有被呼叫 |
調用函數
調用函數也就是執行函數,方法如下
1 | functionname([parameterlist]) |
一般來說就是使用參數傳遞。
1 | a, b = 2, 3 |
參數傳遞
1 | def twoSum(a, b) |
形式參數: 在括號裡面的就是形式參數
實際參數: 在調用的時候,函式括號裡的才是實際參數
位置參數
數量必須一致、位置必須與定義時一致
1 | def twoSum(a, b): |
關鍵字參數
呼叫函式時,在傳入參數值的前面加上函式所定義的參數名稱
為參數設默認值
1 | def funcname(parameter1 = defaultvalue1): |
defaultvalue:可選參數,為該默認值
強制設置數值
1 | def twoSum(a, b = 3): |
定義函式時,設置參數為默認值時須小心一點,默認參數必須指向不可變對象
可變參數
*parameter(可接收任意多個參數)
1 | def add_all(*add): |
**parameter,表示可接收任意多個類似關鍵字參數一樣顯示賦值的實際參數,並放進字典中
1 | def printSign(**sign): |
返回值
也就是return,如果沒有return,即返回None空值
1 | # 取自python tutor |
變量的作用域
局部變量(只能在函式裡呼叫)
1 | def print_test(): |
全域變量
1 | mes = "god" |
也可以……
1 | # 也可以改成global |
匿名函式
指的是沒有名字的函式,使用lambda表達式
1 | result = lambda[arg1[arg2[.....]]]: expression |
圓周率算法
1 | import math |
注意
注意函式的參數與默認值