# 基礎 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) ```