# 第七堂 function: def, class ## def function 要先定義,定義完要呼叫才會執行 ```python= def test(): print("123") test() ``` 因為python是直譯的關係,如果先呼叫 會找不到定義 ```python= test() def test(): print("123") ``` 用function的時機:同樣邏輯的事情做很多次 return 返回值:要拿變數去接、或者印出 ```python= def test(): return 555 print(test()) x = test() print(x) ``` ```python= def test(): print("444") return 555 print(test()) ``` return 的意思就是結束、離開目前的function ```python= def test(): return 555 print("444") print(test()) ``` return 可以一次回傳多個值 ```python= def test(): return 1, 3, 5 print(test()) a, b, c = test() print(a) print(b) print(c) ``` 如果只拿一個變數接收多個返回值,a會變成tuple元組 ```python= def test(): return 1, 3, 5 a = test() print(a) ``` 在Python裡,function要不要加上return都可以 如果沒有return,拿變數a去接的話會是None ```python= def test(): print("Hi") a = test() print(a) ``` ```python= def test(): print("Hi") return None ``` ## def 帶參數 ```python= def test(t): print(t) test(5) ``` 兩數相加 ```python= def add(a, b): return a + b x = add(5, 8) print(x) ``` 簡單的計算機 ```python= def cal(a, op, b): if op == "+": return a + b if op == "-": return a - b if op == "*": return a * b if op == "/": return a / b x = cal(5, "+", 8) print(x) x = cal(5, "-", 8) print(x) x = cal(5, "*", 8) print(x) x = cal(5, "/", 8) print(x) ```