## <span class="green"> 1-1 Spyder 中常用的快捷鍵 </span> <style> .green {color: green;} .orange {color: orange;} </style> **1. 編輯程式時常用到** :::success - **`ctrl`** + **`s`** 存檔 - **`ctrl`** + **`n`** 新開檔案 - **`Ctrl`** + **`Z`**:還原 - **`Ctrl`** + **`Y`**:取消還原 - **`Ctrl`** + **`4`**:多行註解/取消 - **`Tab`**:縮排 4 個空格字元 - **`Shift`** +**`Tab`**:左移 4 個空格字元 ::: **2.執行程式時常用到** :::success - **`F5`** 全部執行 - **`F9`** 單行執行(只執行你選擇的那一行) ::: **3.跑到當掉時常用到** :::success 在 Console 框按下 **`ctrl`** + **`.`**:重新運作`kernel` 在 Console 框按下 **`ctrl`** + **`T`**:新開一個`kernel` ::: ## <span class="green">1-1-1 變數(Variable)</span> ### 🚀 **使用 print() 輸出變數的值** 在 Python 建立字串後,就可以呼叫 print()函數顯示字串。 ```python=1 grade = 90 height = 156 weight = 45 ``` - **方法一**:將 **數字型別的變數** 轉為 **字串** 後再進行串接,使用 `str()` 將整數轉成字串,然後用 + 號將其與文字連接。 ```python=4 # 方法一 print("分數 = " + str(grade)) print("身高 = " + str(height)) print("體重 = " + str(weight)) ``` - **方法二**:直接在 `print()` 中使用逗號(`,`)隔開文字與變數值,使 Python 自動將數值轉為字串。 ```python=4 # 方法二 print("分數 =", grade) print("身高 =", height) print("體重 =", weight) ``` ### 🚀 **變數的基本概念** - 變數是用來儲存數據的容器,可以透過變數名稱來存取這些數據。 - 每個變數都有名稱和儲存的值。 ![image](https://hackmd.io/_uploads/HkM4papbye.png) ## <span class="green">1-1-2 指定敘述</span> ### 🚀 **指定敘述** 將數值賦予變數。 ```python=1 x = 5 # x = 5 x = x + 5 # x = 10 name = "Alice" ``` ### 🚀 **多重指定敘述** - 一次將相同的數值賦予多個變數。 ```python=1 score1 = score2 = score3 = 25 print(score1, score2, score3) # 25 25 25 ``` ### 🚀 **同時指定敘述** - 使用 Python 的多重賦值語法來交換兩個變數的值,而不需要使用中間變數。 ```python=1 x, y = 1, 2 # X = 1 Y = 2 ``` ```python=2 x, y = y, x # X = 2 Y = 1 ``` ## <span class="green">1-1-3 Python 運算子(Operator)</span> | 運算子 | 說明 | |:------------------------------------------------------- |:---------------------------------------------------------------------------------------------------------- | | `+` `-` `*` `/` | 加法、減法、乘法、除法(回傳浮點數) | | `//` `%` `**` | 整數除法(只取整數部分)、餘數、次方 | | `==` `!=` `>` `<` `>=` `<=` | 等於、不等於、大於、小於、大於等於、小於等於 | | `and` `or` `not` | 邏輯運算子(Logical operations): AND, OR, NOT | | `&` `XOR` `~` | 位元運算子(Bitwise operations): AND, XOR, NOT | | `<<` `>>` | 位元運算子(Bitwise shift operations): 左移、右移 | ### 🚀 **基本的數學運算** ```python=1 x = 5 print(type(x)) # 顯示 "<class 'int'>" ``` ```python=3 print(x) # 顯示 "5" print(x + 1) # 加法: 顯示 "6" print(x - 1) # 減法: 顯示 "4" print(x * 2) # 乘法: 顯示 "10" ``` ```python=8 print(x / 2) # 除法: 顯示 "2.5" print(x // 2) # 整數除法: 顯示 "2" print(x % 2) # 餘數: 顯示 "2" print(x ** 2) # 指數: 顯示 "25" ``` ### 🚀 **不同的表示方法** ```python=11 x += 1 # 相當於 x = x + 1,顯示 "6" x *= 2 # 相當於 x = x * 2,顯示 "12" ``` ## <span class="green">1-1-4 資料型態</span> ### 🚀 整數(Integer / int) ```python=1 x = 5 print(type(x)) # 顯示 "<class 'int'>" ``` ### 🚀 浮點數( Floats ) ```python=1 y = 2.5 print(type(y)) # 顯示 "<class 'float'>" ``` ### 🚀 布林( Booleans / Bool ) ```python=1 z = True print(type(z)) # 顯示 "<<class 'bool'>>" ``` - **邏輯 AND**:當兩個運算元都為 `True` 時,`and` 運算才會回傳 `True`,否則回傳 `False`。 - **邏輯 OR**:至少一個運算元為 `True` 時,`or` 運算會回傳 `True`。 - **邏輯 NOT**:將 `True` 轉為 `False`,或將 `False` 轉為 `True`。 ```python=1 a = True b = False print(a and b) # 邏輯AND: 顯示 "False" print(a or b) # 邏輯OR: 顯示"True" print(not a) # 邏輯NOT: 顯示 "False" ``` == 是相等運算符,會比較左右兩邊的值是否相等,會返回一個布林值 True 或 False,表示判斷結果。 ```python=1 a, b = 3, 4 print(a == b) # 相等: 顯示 "False" print(a != b) # 不等: 顯示 "True" print(a > b) # 大於: 顯示 "False" print(a >= b) # 大於等於: 顯示 "False" print(a < b) # 小於: 顯示 "True" print(a <= b) # 小於等於: 顯示 "True" ``` ### 🚀 字串( String / Str ) ```python=1 str1 = 'hello' print(type(str1)) # 顯示 "<class 'str'>" ``` **在 Python 中,%s 和 %d 是格式化字串的佔位符,用來將不同類型的數據作為字串。** - %s:用於插入字串(或自動轉換成字串的資料)。 - %d:用於插入整數(d 代表 decimal 十進位)。 ```python=1 str1 = 'hello' # 使用單引號建立字串 str2 = "python" # 使用雙引號建立字串 ``` ```python=3 str3 = str1 + ' ' + str2 # 字串連接 print(str3) # 顯示 "hello python" ``` ```python=5 str4 = '%s %s %d' % (str1, str2, 12) # 格式化字串 print(str4) # 顯示 "hello python 12" ``` ![image](https://hackmd.io/_uploads/B1JCo66Z1e.png) ## <span class="green">1-2-1 條件控制</span> 可以分為:**if (單選)、if / else (二選一) 、 if / elif / else (多選一)** ### 🚀 單選條件敘述 `input()` 函數輸入字串,呼叫 `int()` 函數轉換為整數。 if t < 20 語法結構是: * 程式判斷 t 是否小於 20。 * 如果 t 的值小於 20,條件為 `True`,將執行下一行的 `print()`。 * 如果 t 大於等於 20,條件為 `False`,則會跳過這行的 `print()`。 ```python= t = int(input("請輸入氣溫: ")) if t < 20: print("出門帶外套!") print("今天氣溫 = " + str(t)) ``` :::success Python 程式區塊是縮排相同數量的空白字元,一般是 4 個空白字元 **(一個 `Tab` 鍵)** ::: 在條件敘述加上邏輯運算式 ```python= if t >= 20 and t <=22 : print("出門帶外套!") ``` ### 🚀 二選一條件敘述 ```python=1 s = int(input("請輸入成績 => ")) if s >= 65: print("成績及格!") else: print("成績不及格!") ``` ### 🚀 多選一條件敘述 ```python=1 a = int(input("請輸入年齡 => ")) if a < 13: print("兒童") elif a < 20: print("青少年") else: print("成年人") ``` ### 🚀 補充:單行條件敘述 這種條件運算式的語法結構是: * 條件式:如果 **條件式** 為 `True`,則會返回 值1;否則,返回 值2。 * 變數:將選擇的結果賦值給 變數。 ```python 變數 = (值1 if 條件式 else 值2) ``` ```python h = h-12 if h >= 12 else h ``` ```python=1 h = int(input("輸入24小時制的小時數 => ")) h = h-12 if h >= 12 else h print("目前時間為 =", h) ``` ## <span class="green">1-2-2迴圈控制</span> 可以分為:**for/in 計數迴圈** 和 **while 條件迴圈**。 ### 🚀 for/in 計數迴圈 使用情境:已經知道需要重複執行幾次。 ```python= m = int(input("請輸入最大值 =>")) s = 0 for i in range(1, m + 1): s = s + i print("總和 = " + str(s)) ``` 可以在回圈內印出 i, s, m 的變化,協助理解。 ![image](https://hackmd.io/_uploads/SkENhSdQyx.png) ### 🚀 range() 函數 | range() 函數 | 整數值範圍 |備註 | | -------- | -------- |-------- | | range(5) | 0 ~ 4 | 此參數是終止值,預設值是0 | | range(1, 5) | 1 ~ 4 | 第 1 個參數是起始值,第 2 個參數是終止值(不包含本身) | | range(1, 11, 2) | 1、3、5、7、9 |range(起始值, 終止值-1, 步距) | ### 🚀 while 條件迴圈 使用情境:迴圈執行次數取決於某個條件,而非固定次數。 ## <span class="green">1-3 函數</span> ### 關鍵字引數 add 指定了將兩個數值 a 和 b 相加並回傳結果的操作。 ```python=1 def add(a, b): return a + b ``` ## <span class="green">1-4 類別(Class)與物件(Object)</span>