## 函數定義
**根據輸入做特定的處理,將處理結果返回叫函數**。

我們先來看函數的數學定義:
*給定一個數集A,假設其中的元素為x。現對A中的元素x施加對應法則f,記作f(x),得到另一數集B。假設B中的元素為y。則y與x之間的等量關系可以用y=f(x)表示。我們把這個關系式就叫函數關系式,簡稱函數。函數概念含有三個要素:定義域A、值域C和對應法則f。其中核心是對應法則f,它是函數關系的本質特征*

我們在在學習數學的時候學習過很多二元一次方程:比如:
* *3x+2y=5*
* *2x+3y=8*
我們首先會把方程變成這種形式:
* *y = (5-3x)/2*
* *y = (8-2x)/3*
經過這層轉換,等式的左邊是我們想要得到的結果變量,等式的右邊是我們我們要做的數據處理。我們每給出一個x就會根據函數定義得到一個y。這個過程就叫做函數化。
## python里的函數定義
python的函數定義只是把我們的數學模型做了簡單改造。來看代碼:
~~~
def square(a):
print(a)
return a * a
~~~
我們對照函數定義來理解一下這段代碼:
**根據輸入做特定的處理,將處理結果返回叫函數**。
我們代碼的第一行`def square(a)` 是對函數的定義聲明。可以抽象為:`def 函數名字(輸入參數)`。其中 def 是 definition(定義)的縮寫。
代碼的第二行和點航是對輸入的處理,也就是**函數體**。
代碼的第三行 `return a*a` 是**處理結果返回**的部分,**return** 是返回的意思。
## 函數調用
函數調用很簡單,看代碼:
~~~
b = square(2)
~~~
我們只需要用函數名字加函數參數就可以完成函數的調用。這個是不是很熟悉?我們之前用的`print('helllo')`、`input()` 都是調用。
函數調用后代碼會先執行函數體的代碼,當函數體代碼執行完后繼續原來下面的代碼。
## 函數的意義
函數是編程語言的核心,通過使用函數。能夠真正的讓我們的代碼工程化,變得可維護。整體來看,使用函數有如下好處:

**1. 程序結構清晰**
通過函數,我們可以把代碼分塊,每塊負責不同的模塊(事情)。這樣代碼清晰容易管理。
我們可以想一下小區的垃圾分類,如果我們沒有將生活垃圾按模塊(分類)放到不同的垃圾桶里。那垃圾處理就會非常麻煩了。

**2. 復用性好**
通過使用函數,我們可以將重復的、類似的代碼只寫一次,通過函數調用來簡化我們的代碼。
**3. 容易修改**
因為我們的代碼通過函數分成了一個一個一個的模塊,所以我們想改某個模塊的功能,只需要關注對應的函數就好了,對整體沒有太大影響。
- 課程介紹
- 搭建環境
- 什么是計算機
- 程序是怎么運行的
- 安裝python
- 項目實例-安裝IDE
- 變量和簡單數據類型
- 數據&變量
- 數字
- 字符串
- 布爾類型
- 項目實例
- 容器-列表
- 容器
- 列表
- 項目實例
- 容器-字典
- 定義字典
- 項目實例
- 數據類型總結
- 條件語句
- python條件語句
- 項目實例
- 循環語句
- for循環
- while循環
- 項目實例
- 函數
- 5.0函數定義
- 5.2函數實戰
- 6.文件系統
- 6.1 文件系統介紹&python查找文件
- 6.2 用python讀寫文件
- 7. python操作時間
- 8.面向對象
- 8.1 類和對象
- 8.2 繼承和重寫
- 8.3 面向對象項目實戰
- 9 GUI編程
- 9.1 GUI基礎
- 9.2 備忘清單GUI版
- 10.網絡
- 10.1 網絡的發展
- 10.2 python http
- 11.web開發
- 11.1 web基礎&HTML
- 11.2 CSS&JavaScript
- 11.3 網頁計算器
- 11.3 網站開發實戰-播客搭建
- 11.3 python-web
- 12. 項目實戰-數據處理
- 13. 項目實戰-AI入門
- 13.1 環境搭建
- 心得
- 13.2 Tensorflow的瓜怎么吃
- 14 pygame
- 14.1 pygame Helloworld
- 14.4 pygame 動畫基礎 Animation
- 從0開始學python第14.5節 pygame 加載圖片和聲音
- 從0開始學python第14.6節 pygame.sprite(上)
- 14.7 pygame.sprite模塊(下)
- 14.8 pygame射擊游戲(一)
- pygame射擊游戲(二)
- 14.8 pygame射擊游戲(三)
- 14.8 pygame射擊游戲(四)
- 14.8 pygame射擊游戲(五)