[TOC]
# 函數概念
> 函數(function)是可以重復使用的,用于實現某個功能的代碼片段.
> 函數能提高應用的模塊性,和代碼的重復利用率.
> Python 提供了很多內建函數,比如print(),
> 內置函數功能有限,我們可以創建自己的函數,這叫"用戶自定義函數"
**內建函數/方法使用**

>通過以上規律發現,Python中所謂的使用該函數就是把你要處理的對象放在函數名字的括號內! 簡單的說往函數中塞東西就可以得到處理的結果!
>Python3.7 中常內置的函數有`69`個
[內置函數官方文檔](https://docs.python.org/3/library/functions.html)

>一些很實用,一些不常用,比如編碼的函數ascii(),bin(),chr()等,這些都是相對底層的編程設計中才會實用到的函數,你深入到一定程度才會派上用場
**數學中的函數**
> 自帶函數數量和功能都是有限的,想讓Python幫我們做更多事情,就要自己設計符合使用需求的函數.常見函數很簡單,我們初中數學中已經掌握了原理!

接下來我們通過程序實現!
# 函數定義和調用

最基本的函數結構
> def 函數名():
> 函數功能代碼
> 調用函數 函數名()
**注意**
- 關鍵字不能少: `def` 和 `return ` 是關鍵字,python依靠這些特殊關鍵字來明白用戶意圖,實現更加復雜的編程!所以關鍵字一定不能少
- 符號不能少且為英文: `()和 :` 不能少,且都為英文!否則報錯
```
#符號為中文錯誤
SyntaxError: invalid character in identifier
```
- 縮進不能少
**函數命名規則**
> 和變量命名規則相同
- 函數名由字母數字 `-` 或 `-`組成,首字母一定不能為數字,盡量用英文避免用中文
- 函數名區分大小寫
- 避免使用關鍵字
- 見名知意
IDE中冒號后面后回車(換行)你會自動得到一個縮進.函數縮進后面的語句被稱為語句塊(block),縮進是為了表明語句和邏輯的從屬關系.是Python最顯著特征之一
`初學者會忽略縮進問題,導致代碼無法運行成功.,需要特別注意`
**調用**
> 函數不調用不會被執行,調用時參數值個數必須和方法定義時參數格式匹配!
```
函數名(參數1值,參數2值,....); 如果有返回值可以用變量接收!
```
# 練習:
1. 編寫計算梯形面積函數
2. 編寫溫度轉換函數
```
def tixing_mianji(a,b,h):
return (a+b)*h/2
a = float(input("請輸入梯形上邊長:"))
b = float(input("請輸入梯形下邊長:"))
h = float(input("請輸入梯形高:"))
mianji = tixing_mianji(a,b,h)
print("梯形面積為:",mianji)
```
```
# 溫度轉換為 華氏攝氏度 溫度* 9/5 + 32
def wendu_converter(C):
wendu = C*9/5+32
return str(wendu)+'F'
du = float(input("請輸入當前溫度:"))
print(wendu_converter(du))
```
# 返回值return
# 參數
# 匿名函數
# 變量作用域
# 遞歸函數
# 作業