## if-else
---

**如圖 if 表示python 檢視某個條件是否滿足**
若滿足 則繼續執行 若不滿足 則程式結束
//媽媽叫小明出門買東西 如果天氣晴朗 買牛奶
```
if 天氣晴朗:
買牛奶
```

**而在 if- else 的判斷裡**
則增加了若條件判斷為不滿足 程式碼要執行的其他內容
//媽媽叫小明出門買東西 如果天氣晴朗 買牛奶 如果不晴朗 買可樂
```
if 天氣晴朗:
買牛奶
else :
買可樂
```

**加入 elif 後 則可以進行更多條件的判斷**
elif 的使用方式為「elif 條件:」,if 和 elif 都能針對各自對應的 True 結果執行對應的程式,而 else 仍然是對應結果為 False 的程式,當對應的程式都執行完成後,繼續執行下方程式。
//媽媽叫小明出門買東西 如果天氣晴朗 買牛奶 如果多雲 買可樂 如果不晴朗也不多雲 買果汁
```
if 天氣晴朗:
買牛奶
elif 天氣多雲 :
買可樂
else :
買果汁
```
---
---
## CH6 練習題
---
練習1 - 考試有沒有及格
設定分數 score = 61,撰寫程式判斷分數是否及格 (>=60),若是,則印出「恭喜及格~」。
```python
score=61
if score>=60:
print('恭喜及格~')
```
---
### 練習 2 - 錄取分數
```python
score = 85
threshold = 80
if score >= threshold:
print("錄取")
else:
print("未錄取")
```
---
### 練習 3 - 買水果
```python
mango_price = 34
watermelon_price = 29
if mango_price <= 30:
print("買芒果")
else:
print("芒果太貴了")
if watermelon_price <= 30:
print("買西瓜")
else:
print("西瓜太貴了")
```
---
### 練習 4 - 兩次考試都要及格
```python
score1 = 61
score2 = 59
if score1 >= 60 and score2 >= 60:
print("皆及格")
else:
print("被當了")
```
---
### 練習 5 - 氣候判斷
```python
temperature = 24
humidity = 45
if temperature < 25 and humidity <= 50:
print("乾冷")
else:
print("濕熱")
```
---
### 練習 6 - 電費計算
此題需要具體的費率和季節資訊。以下是示例代碼,假設費率變化。
```python
usage = 350 # 用電度數
season = "summer" # 或 "winter"
if season == "summer":
if usage <= 120:
rate = 2.10
elif usage <= 330:
rate = 3.02
else:
rate = 4.39
else: # winter
if usage <= 120:
rate = 1.63
elif usage <= 330:
rate = 2.38
else:
rate = 3.52
total_cost = usage * rate
print("電費:", total_cost)
```
---
### 練習 7 - 占卜
此題需要一個日期輸入,以下是假設占卜運勢的例子:
```python
import random
date = input("請輸入日期 (格式: YYYY-MM-DD): ")
fortune = random.choice(["普通", "吉", "大吉"])
print("您的運勢:", fortune)
```
---
### 練習 8 - 判斷平年或閏年
```python
year = int(input("請輸入年份: "))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print("閏年")
else:
print("平年")
```
---
### 練習 9 - BMI
```python
height = float(input("請輸入身高 (公尺): "))
weight = float(input("請輸入體重 (公斤): "))
bmi = weight / (height ** 2)
if bmi < 18.5:
status = "體重過輕"
elif 18.5 <= bmi < 24:
status = "正常範圍"
elif 24 <= bmi < 27:
status = "過重"
else:
status = "肥胖"
print(f"BMI: {bmi:.2f}, 狀態: {status}")
```
---
### 練習 10 - BMR
```python
gender = input("請輸入性別 (男/女): ")
weight = float(input("請輸入體重 (公斤): "))
height = float(input("請輸入身高 (公分): "))
age = int(input("請輸入年齡: "))
if gender == "男":
bmr = 88.362 + (13.397 * weight) + (4.799 * height) - (5.677 * age)
else:
bmr = 447.593 + (9.247 * weight) + (3.098 * height) - (4.330 * age)
print(f"基礎代謝率 (BMR): {bmr:.2f} 大卡")
```
---
### 練習 11 - 擲骰子
```python
import random
dice_roll = random.randint(1, 6)
print("擲骰子結果:", dice_roll)
```
---
### 1. 輸入與輸出
`input()`:接收使用者的輸入,返回字串類型的值。
`print()`:輸出訊息到螢幕,用於顯示變數值或文字。
### 2. 資料型別與型態轉換
`int()`:將值轉換為整數類型。
`float()`:將值轉換為浮點數類型。
`str()`:將值轉換為字串類型,常用於拼接文字和其他類型數據。
`type()`:檢查變數的資料型別,回傳類型資訊。
### 3. 隨機數相關函式
```
import random
random.randint(a, b)
```
生成範圍 [a, b] 內的隨機整數,需先導入 random 模組。
### 4. 數學運算符
`+ `(加法):計算兩數之和。
`-` (減法):計算兩數之差。
`*` (乘法):計算兩數之積。
`/ `(除法):計算兩數之商,回傳浮點數。
`//` (整數除法):計算兩數的整數商,去除小數部分。
`% `(取餘數):計算兩數相除的餘數。
`**` (指數):計算次方。
### 5. 邏輯與條件運算符
`and`:當左右兩個條件都為 True 時,結果為 True。
`or`:當左右兩個條件至少有一個為 True 時,結果為 True。
`not`:反轉布林值,True 變 False,False 變 True。
這些函式和運算符涵蓋了基本的輸入、輸出、型態轉換、隨機數生成、數學計算以及邏輯判斷功能,使得 Python 程式具備處理多樣化資料和進行邏輯運算的能力。
---
### 1. 邏輯判斷語法(CH6 邏輯判斷)
#### if-else 判斷
if 語句用於執行條件判斷,格式為:
```pyohon=
if 條件:
# 當條件為真時執行的程式碼
else:
# 當條件為假時執行的程式碼
```
`elif`:在多重條件下使用,用於 `if-elif-else` 判斷。
---
#### 比較運算符
包含 `==, !=, <, >, <=, >=` 用於數值或字串比較。
---
#### 布林運算符
`and`: 兩個條件都為真時返回 True
`or`: 只要有一個條件為真就返回 True
`not`: 反轉布林值。
---
#### `input()` 函數
用於接收使用者輸入的數據,輸入默認為字串格式。
---
## 2.運算式、變數與資料型別(CH5 運算式、變數與資料型別)
#### 1. 算術運算符
包含 + (加法), - (減法), * (乘法), / (除法, 回傳浮點數), // (整數除法), % (取餘 數), ** (指數)。
#### 2. 資料型別
* 整數 (int):沒有小數的數字。
* 浮點數 (float):有小數的數字。
* 字串 (str):由文字組成,使用單引號或雙引號包覆。
#### 3. 變數
* 變數是用來儲存數據的名稱,可透過 = 指派運算符來賦值。
* 命名規則:變數名稱可以包含字母、數字和底線,不能以數字開頭,並避免使用 Python 的關鍵字。
#### 4. 型別轉換
* 可使用 int() 將資料轉換為整數,float() 轉換為浮點數,str() 轉換為字串。
#### 5. 輸出
* 使用 print() 函數來顯示變數或運算結果。