---
# System prepended metadata

title: 判斷式

---

# 判斷式 if...else
前面我們介紹到了要如何透過使用運算子來修改變數的「值」，乍看之下，Python 現在好像只是一步普通的計算機，但如果你以為Python就只是這樣的話，那真的太小看Python，接下來的兩章「判斷式」、「迴圈」我們將會為Python 帶來魔法!
那，安全帶繫好，我們要開始囉~
<br>
## 什麼是判斷式?
目前，我們的程式還只能一行行的執行，不能夠「依照狀況」來調整，而判斷式就如同一個開關，在特定條件下，它就會執行某一區的程式碼，用中文解釋的話就是，「**當...發生時就執行...要不然就...**」，下面將更深入的解釋


## 內容:
- True 以及 False
- if
- elif
- else

## True 以及 False
>程式碼非黑即白(比工程師的交友圈還無趣)，沒有任何的模凌兩可，要學會控制if...else 之前，就應該要先學會如何判斷是、否。

請看看以下幾個例子，你是否可以快速的判斷是與否?
```
5=8 #False
5<8 #True
5<8 and 5!=8 # True
----
a=5
a=8 # False
a<8 #True
a<8 and a!=8 # True

```
是不是超簡單的?但這就是判斷式的核心，if...else 判斷式**只有在True的情況下才會執行區塊中的內容**。這點請大家務必牢記，務必弄清楚自己目標的條件是什麼，才可以去執行。

現在，我們就來談談if else 吧。

## if 
所謂的if 就是當...條件滿足時,就要執行什麼...
它的格式是這樣的
```python
if (條件式): #雖然pytho 允許不加括號，但我個人一律建議加括號
```
好，那麼問題來了，既然if的條件滿足時，會執行某一區段的程式，那電腦要怎模樣識別一個區段呢?
在Python，我們會用四個空白健來區分一個區段，下圖
![](https://hackmd.io/_uploads/r1yUepuMa.png)

所以一個區段的定義應該如下
>若每一連續的行前面都有四個空白，既為一個區段


那接下來看if 的例子
```python
a=10

if a==10:
    print("a等於10")
```
這時應該會得到這樣的輸出
```bash
a等於10
```

## else
如果if的條件不滿足的話怎麼辦呢?這時我們會需要用else，else的定義如下
>當所有if的條件都不滿足時(皆為False)，就會執行else。

但是Python並不會強迫每一個條件式都需要加else，您可自由的選擇是否需要使用，至於 else的格式請看下圖:
![](https://hackmd.io/_uploads/SJoBMp_fa.png)

與if不同之處在於，else不需要加上任何的條件句，因為它是**在所有if 條件皆不滿足時就會被執行**



如果還沒暈頭轉向的話，我們就繼續介紹另一個酷東西

## elif
ㄟ?每一組if條件式都只能有一個條件嗎?我不能在一組裡面判斷多個條件嗎?當然可以啊，這時要有請我們的elif大大出場了。
elif 是 elif 的所寫，我們可以理解成:
>如果if的條件不滿足，那麼就執行else if 的條件
請注意，您可以新增多個elif，但是若前面的if或elif條件已經滿足了，就會直接跳過後面的判斷。
![](https://hackmd.io/_uploads/r1KX4TuzT.png)

直接進範例可能會比較清楚

```python
if a==10:
    print("a等於10")
elif a>10:
    print("a大於10")
elif a<10:
    print("a小於10")
```

如果忘記運算子式什麼的話，可以看以下的講義
[運算子的講義](https://hackmd.io/@Rduan/SyxyGWpZa)