---
# System prepended metadata

title: 第二堂社課

---

# <center> **邏輯判斷  if、elif、else**
# if 判斷
**「如果怎樣...就怎樣...」，使用方式為「if 條件:」，對應的程式需使用「縮排」，如果判斷為 True，就會執行對應的程式，反之如果是 False，就會跳過判斷式，繼續執行下方的程式。**
    
```python!
a = 8
b = 6 
if(b > a):
    print("success") #b > a 這個判是"False"不會執行
print ("Hi")
    
#輸出：Hi
```

**流程圖**
    
![](https://hackmd.io/_uploads/B1jhrd6WT.png)

# else
**if 可以和 else 搭配使用，if 對應結果為 True 的程式，else 對應結果為 False 的程式，當對應的程式都執行完成後，繼續執行下方程式。**



```python!
數學 = 88 
英文 = 99
if (英文 > 數學):
    print ("理科之恥")
else :
    print("復旦之恥")
    
#輸出:理科之恥
```
    
**流程圖**
    
![](https://hackmd.io/_uploads/ry4ovdaZa.png)


# **elif**
**如果加入 elif 的條件判斷，搭配 if 和 else ，就能判斷多種不同的條件，elif 的使用方式為「elif 條件:」，if 和 elif 都能針對各自對應的 True 結果執行對應的程式，而 else 仍然是對應結果為 False 的程式，當對應的程式都執行完成後，繼續執行下方程式。**


```python!
數學 = 88
英文 = 99
if(數學 > 英文):
    print('禮拜五早上交罰寫')
elif(英文 == 100 or 數學 == 100):
    print('跟校排一同分')
else:
    print('復旦之恥')
```
**流程圖**
    
![](https://hackmd.io/_uploads/BJgbT_a-T.png)




# **三元運算子(補充)**
**如果一個判斷式裡面只有 if 和 else，就能夠使用三元運算式來簡化，三元運算式的語法為：
" 變數 = (值1) if (條件式) else (值2) "**

```python!
數學 = 88
英文 = 99
    
誰比較大 = "數學" if 數學>英文 else "英文"
    
print(誰比較大)

#輸出:英文
```


# **題目練習**
https://dandanjudge.fdhs.tyc.edu.tw/ShowProblem?problemid=a015
https://dandanjudge.fdhs.tyc.edu.tw/ShowProblem?problemid=a017


# <center> **迴圈 ( for、while )**
**在程式執行的過程中，有時候會重複執行一些相同的運算，這時可以使用「迴圈」來處理這些重複且相同的程式碼，增加程式的可讀性以及寫程式的效率，本篇會介紹 for 迴圈與 while 迴圈，以及 break 中斷命令與 continue 跳過命令。**

# for 迴圈 
**「for 迴圈」的使用的方法為「for 變數 in 可迭代的物件:」，執行之後，for 迴圈會依序將可以迭代的物件取出，賦值給指定的變數 ( 可迭代的物件像是字串、串列、字典、集合...等 )。**
    
### 迭代是什麼?
**迭代是重複反饋過程的活動，其目的通常是為了逼近所需目標或結果。每一次對過程的重複稱為一次“迭代”。**
:::spoiler **補充(自學)**
    
**滿多東西都可以作為「可迭代物」（iterable），以函式（Function）來說的話，常見的包括 range()、enumerate()、zip()、reversed()、sorted()；以資料型態來說的話，包括字串（string）、串列（list）、元組（tuple）、字典（dictionary）。**
:::
    


---

**詳細介紹:
https://medium.com/ai-academy-taiwan/python-%E7%9A%84%E5%8F%AF%E8%BF%AD%E4%BB%A3%E7%89%A9%E4%BB%B6-%E8%BF%AD%E4%BB%A3%E5%99%A8%E5%92%8C%E7%94%A2%E7%94%9F%E5%99%A8-236d19c4051e**
### **for用法(如果忘記end是什麼可以看第一堂社課講義)**
![](https://hackmd.io/_uploads/BJBh9pA-6.png)
**range()使用說明🤏：
range(5) → 代表0, 1, 2, 3, 4
range(1,5) → 代表1, 2, 3, 4
range(1,10,2) → 代表1, 3, 5, 7, 9**
**反正就是range( start起點 , stop終點 , step間隔 )，為左閉右開(包含開始不含終點)
起點不打預設為0，間隔不打預設為1。** 

# while 迴圈
**「while 迴圈」是「根據條件判斷，決定是否重複或停止」的迴圈，用法為「while 條件:」，如果條件判斷為 True，就會不斷執行迴圈內容，如果判斷為 False，就會停止迴圈**


```python!
平均1 = 95.3
平均2 = 95.6

while 平均1 < 平均2:
    print("為什麼又輸了")  #心態受到打擊
                
    break
                
#輸出:為什麼又輸了

```
    

# break 和 continue
**break 和 continue 的差別在於 break 會將整個迴圈停止，而 continue 是將迴圈目前執行的程式停止，然後再次執行迴圈，下圖為兩者的執行差異。**

![](https://hackmd.io/_uploads/B1c3f0RWp.png)



# **題目練習**
https://dandanjudge.fdhs.tyc.edu.tw/ShowProblem?problemid=b046
https://dandanjudge.fdhs.tyc.edu.tw/ShowProblem?problemid=a142


# 資料來源
https://steam.oxxostudio.tw/category/python/basic/loop.html
https://blog.csdn.net/qq_45937199/article/details/111463106
https://steam.oxxostudio.tw/category/python/basic/if.html

