---
# System prepended metadata

title: 基礎 Python 語法
tags: [ck, Python, mycourse]

---

# 基礎 Python 語法
[TOC]

## 變數
> 儲存、計算資料的基本單位
> 將 = 右側的值計算完，儲存到左邊的變數中
```python!
a = 1    # 宣告變數 a，儲存整數 1
b = 2.6  # 宣告變數 b，儲存小數 2.6
c = 'hello' # 宣告變數 c，儲存字串 'hello'
            # 文字都要使用 '' 或 "" 框住
```

### 型態轉換
> 整數 int() | 小數 float() | 字串 str()
```
b = int('123') # 將文字 '123' 轉換為整數後，儲存到變數 b
a = '456'
a = int(a)     # 將變數 a 的資料('456') 轉換為整數後，儲存到變數 a
```

### 運算
> 常用運算，先乘除後加減
> `+ - * /`
```python!
a = 1 + 2 * 3  # a = 7
a = a + 1      # a = 8
```
> 其他運算，取餘數、整數除法、次方
> `% // **`
```python!
a = 11 // 3  # 3
b = aa % 3   # 2
# 11 ÷ 3 = 3 ... 2

c = 2 ** 3   # 8 : 2 的 3 次方
```

### 輸出
> 將資料顯示至螢幕上
```python!
print('Hello')       # 輸出 Hello {換行}
print('Hello', 12+3) # 輸出 Hello {空格} 15 {換行}
print('Hello' + str(12+3)) # 輸出 Hello15 {換行}
print('Hello', end='')     # 輸出 Hello {`不`換行}
```

### 輸入
> 由鍵盤輸入資料，儲存到變數中
```python!
n = int(input()) # 將輸入的數字轉為整數
```

---
## 判斷

```python!
if L < B:
    print('B is bigger')
elif L > B:
    print('L is larger')
else:
    print('Equal')
```

:::spoiler 流程圖
```mermaid
graph TD
    A[開始] --> B{ L < B ?}
    B -- 是 --> C["print('B is bigger')"]
    B -- 否 --> D{ L > B ?}
    D -- 是 --> E["print('L is larger')"]
    D -- 否 --> F["print('Equal')"]
    C --> G[結束]
    E --> G[結束]
    F --> G[結束]

```
:::

### 條件
> 比較的方式

| 等於 | 不等於 | 大於 | 大於等於 | 小於 | 小於等於 |
| ---- | ------ | ---- | -------- | ---- | -------- |
| `==` | `!=`   | `>`  | `>=`     | `<`  | `<=`     |

```python!
if a == 5:
    print('a is 5')
```
---

> 多個條件整合


| 和             | 或                       |
| -------------- | ------------------------ |
| and            | or                       |
| 兩側都要是對的 | 至少其中一邊是對的就可以 |

```python!
if weight < 70 and height > 180:
    print('weight < 70 height > 180 兩個條件都符合')

if money > 100 or friend_money > 100:
    print('只要其中一邊是對的，就可以買 100 元的午餐')
```

---
## 重複
> 到這個段落，或許你會需要 [python tutor](https://pythontutor.com/render.html) 來一段段執行程式

### while
> 當條件成立，就繼續執行
```python!
i = 0
while i < 10:
    print(i, end='')
    i = i + 1
# 輸出 0123456789
```

:::spoiler 流程圖
```mermaid
graph TD
    A[i = 0] --> B{ i < 10 ?}
    C --> B
    B -- 是 --> C["print(i, end='')\ni = i + 1"]
    B -- 否 --> D[結束]
```
:::

### for
> 知道重複次數 / 從幾到幾
```python!
for i in range(10):
    print(123)
# 重複輸出 "123 {換行}" 十次
```

> range(起點, 終點, 跳躍)
```python!
for i in range(1, 10, 2):
    print(i, end=' ')
```

> 取 10 個輸入數字的最小值
```python!
minimal = 1000000
for i in range(10):
    a = int(input())
    if minimal > a:  # 將沿路遇到的所有數字都拿來比大小
        minimal = a
print(minimal)
```

> 取 10 個輸入數字的總和
```python!
s = 0
for i in range(10):
    a = int(input())
    s = s + a  # 相加並更新數值
print(s)
```
