<style> .blue { color: #000080; } </style> <style> .silver { color: #c0c0c0; } </style> <font color="#000080">Python 第一週講義</font> === >[name= 林德恩、陳睿倬][time=Sep 24,2021] ###### tags:`python` `tcirc39th` `社課` `臺中一中電研社` --- ## <span class="blue">電研社</span> 社網:[tcirc.tw](https://tcirc.tw) online judge:[judge.tcirc.tw](https://judge.tcirc.tw) IG:[TCIRC_39th](https://www.instagram.com/tcirc_39th) --- ## <span class="blue">Python是什麼</span> Python是一種廣泛使用的直譯式、進階和通用的程式語言。Python支援多種程式設計範式,包括函數式、指令式、結構化、物件導向和反射式程式。它擁有動態型別系統和垃圾回收功能,能夠自動管理記憶體使用,並且其本身擁有一個巨大而廣泛的標準庫。...[維基百科](https://zh.wikipedia.org/wiki/Python) --- ## <span class="blue">使用python</span> 只要有安裝python就能使用python,使用python的最簡單的方法就是用**cmd**或**power shell**這種殼層軟體(**shell**)來執行,但一般來說都使用編譯器來執行。 本次為使用python3來教學。 --- ## <span class="blue">使用shell執行</span> ### 用shell簡略的執行程式 1. 開啟shell 2. 輸入python 3. 輸入程式碼(限一行) 4. 輸入**exit()**或**ctrl+z**來退出 ---- ### 用shell執行程式 1. 開啟shell 2. 用cd指令來進入到程式所在資料夾(可用dir指令輔助) ---- cd指令: * **cd 目標資料夾位置名稱** (變更目錄到指定資料夾) * **cd .\.** (回到上一層目錄) * **cd \\** (回到頂層) dir指令: * **dir** (查詢當前目錄) 切D槽/C槽指令 * **c** * **d** ---- **一個一個開** ``` C:\>cd users C:\Users> ``` **一次開** ``` C:\>cd \users C:\Users> ``` ---- 3. 輸入**python *程式名稱.py的程式*** 來執行 4. 可以使用**ctrl+c**來強制中斷 --- ## <span class="blue">開啟Python的IDE</span> python沒有IDE,只有IDE 可以編輯python的直譯器有很多,不過本次選用IDLE進行教學,因為它在APCS可使用,而且介面較簡單。 ---- ### 1. **開啟IDLE** ![](https://i.imgur.com/SEbWSTr.png) ---- ### 2. **按下File中的New File** ![](https://i.imgur.com/kT6xdm8.png) ---- ### 3. **再按下File中的Save** ![](https://i.imgur.com/lXCT1cZ.png) ---- ### 4. **為程式取名並選擇要存取的位置** ![](https://i.imgur.com/Oke7QEG.png) ---- ### 5. **等程式寫好時執行時,按下Run中的Run Module就會執行程式了** ![](https://i.imgur.com/ah6DdaG.png) --- ## <span class="blue">輸出(print)</span> 如果想要顯示出一些文字或數字這類資料的話,那其中最簡單的方法就是用print這個程式碼了。 * 輸出的python語法是print(變數)或print("文字") ※*python與其他語言不同的是""和''都表示字串* * print函式結尾符預設為換行字元"\n" * print的括號內可以用','分隔,但中間會空一格 ---- **程式** ``` print(變數1, 變數2...) print(字串1, 字串2...) ``` ```python= print(1) print("Hello world!") ``` **output** ``` 1 Hello world! ``` ---- **題目** * [b003: Hello,TCFSH!](https://judge.tcirc.tw/ShowProblem?problemid=b003) --- ## <span class="blue">跳脫字元</span> 在python中,只要不式從外部輸入的"\\",都有跳脫字元的功能,而跳脫字元就是將其後原本有特殊功能的字元轉成單純的字元,將部分普通字元轉成特殊功能的字元。 ---- 幾個常用的跳脫字元 \\\ = <span class="silver">\\</span> \\' = <span class="silver">'</span> \\" = <span class="silver">"</span> \\0 = <span class="silver">空字元</span> \\t = <span class="silver">Tab</span> \\n = <span class="silver">換行</span> \\b = <span class="silver">刪除前一個字元(在最後一個字不會起作用)</span> \\r = <span class="silver">將後面的文字覆蓋最前面的數個</span> \\a = <span class="silver">警示音</span> ---- \\加**三位數(可000)的8進位ascii碼** = <span class="silver">指定字元</span> \\x加**兩位數(可00)的16進位ascii碼** = <span class="silver">指定字元</span> \\u加**四位數(可0000)的16進位Unicode** = <span class="silver">指定字元</span> ---- **程式** ```python= print('\\','\'',"\0a\tb",'\n','\124','\x43','\u0046',"S H") print("123456","4567\rabcde") ``` **output** ``` \ ' a b T C F S H abcde6 4567 ``` ---- 題目 [b004: 串串的強迫症](https://judge.tcirc.tw/ShowProblem?problemid=b004) --- ## <span class="blue">設定變數(單一值)</span> 變數有很多種,它們都是用來儲存單一資料的容器。 變數基本種類如下: ---- 1. 布林值 (boolean) 如:True 2. 整數 (integer) 如:1 包含2進位、8進位、16進位整數 * 2進位要在數字前加0b * 8進位要在數字前加0o * 16進位要在數字前加0x ※輸出會轉10進制 3. 浮點數 (floating-point) 如:1.23 4. 文字 (string) 如:"Ans:1+1=2" ---- * 設定變數和更改變數的python語法都是 **變數名稱** = **資料** ※ *變數名稱不能取:**數字開頭**、**python保留的關鍵字(如print)**、**和自訂函式同名*** ---- **程式** ```python= word = "Hello world" print(word) number = 1 print(number) logic = True print(logic) ``` [範例程式碼](https://ideone.com/PeaQyb) **output** ``` Hello world 1 True ``` --- ## <span class="blue">進位制轉換</span> 如果要將10進位的數字轉成2進位/8進位/16進位顯示的話,可以用: 1. 2進位:bin(整數) 2. 8進位:oct(整數) 3. 16進位:hex(整數) ※轉換成文字變數 ---- **程式** ```python= a = 7 b = 9 c = 18 print("2進位:",bin(a)) print("8進位:",oct(b)) print("16進位:",hex(c)) ``` **output** ``` 2進位: 0b111 8進位: 0o11 16進位: 0x12 ``` --- ## <span class="blue">型別轉換</span> 如果要將資料型別轉換的話,可以用: 1. 轉成布林值:bool(整數/浮點數/文字) 2. 轉成整數:int(浮點數/布林值/文字(必須是純十進位整數的文字型別)) 3. 轉成浮點數:float(整數/布林值/文字(必須是純十進位數字的文字型別)) 4. 轉成文字:str(整數/浮點數/布林值) ---- **程式** ```python= a = 123 print("int ", a) a = float(a) print("float", a) a = int(a) print("int ", a) a = bool(a) print("bool ", a) ``` **output** ``` int 123 float 123.0 int 123 bool True ``` ---- 我們可以藉由type()函式來確認變數的資料型態 ```python= a = 1 b = 0.5 txt = "string" boolean = True print(type(a)) print(type(b)) print(type(txt)) print(type(boolean)) ``` **output** ``` <class 'int'> <class 'float'> <class 'str'> <class 'bool'> ``` --- ## <span class="blue">輸入(input)</span> 輸入的其中最簡單快速的一個方法就是input,它可以從鍵盤輸入資料進去變數。 * 設定變數的python語法是 **變數名稱** = input(**要再輸入前顯示的字串**) ---- **程式** ``` python= output = "NAME" output = input("What's your name? ") print("Hello", output) ``` **output** ``` What's your name? TSJ #輸入 TSJ Hello TSJ ``` ---- **題目** * [a001: 哈囉](https://judge.tcirc.tw/ShowProblem?problemid=a001) --- ## <span class="blue">基本運算子</span> 所有運算式同時也是資料,所以可以用在定義變數內的值或直接輸出,這次先教部分對人類來說較基礎的**算數運算子**和**字串編輯**的運算子。 ---- ### **\+** 用來執行加法運算 程式:**數值 + 數值** 如 1+1: ``` 1+1 ``` ---- **串接** 也可以用在**字串的連接** 程式:**文字 + 文字** 如 "1234554321": ``` "12345"+"54321" ``` 但注意,不能將文字型別跟其他的型別的變數相加,因為數值和文字的「+」不同,一個是相加,一個是串接,但可以將整數、浮點數跟邏輯互相運算。 ---- **錯誤範例** ``` 1+'1' ``` ---- ### **×** 用來執行乘法運算 程式:**數值 * 數值** 如 2×3: ``` 2*3 ``` ---- **重複文字** 程式:**文字 * 數值** 如 "aaaaa": ``` 'a'*5 ``` ---- ### **\-** 用來執行減法運算 程式:**數值 - 數值** 如 6-2: ``` 6-2 ``` ---- ### **/** 用來執行除法運算 程式:**數值 / 數值** 如 6÷3: ``` 6/3 ``` ---- ### **次方** **用來執行次方運算** 程式:**數值(底數) ** 數值(指數)** 如 2⁵: ``` 2**5 ``` ---- ### **取餘** **除法運算時取餘數** 程式:**數值 % 數值** 如 7÷5的餘數: ``` 7%5 ``` ---- ### **取整數商** **除法運算時的整數商** 程式:**數值 // 數值** 如 7÷5的整數商: ``` 7//5 ``` ---- ### **特殊運算規則** **()運算子** 括號內的數字會先運算 **先乘除後加減** 如果沒括號就優先進行先乘除後加減 ---- **程式** ```python= a = int(input("a:")) b = int(input("b:")) print("print a + b = ", a+b) print("print b - a = ", b-a) print("print a * b = ", b*a) print("print a / b = ", a/b) print("print a % b = ", a%b) print("print a ^ b = ", a**b) # a的b次方 print("print a / b = (取整數)", a//b) # a除以b取整數 ``` ---- **input** ``` a:2 b:3 ``` **output** ``` print a + b = 5 print b - a = 1 print a * b = 6 print a / b = 0.6666666666666666 print a % b = 2 print a ^ b = 8 print a / b = (取整數) 0 ``` ---- ### 儲存型別 如果是用變數儲存不同型別的計算結果的話,變數型別會更改,如:布林值+整數會變整數、整數×小數變小數,以此類推,如果將變數資料改成其他型別的資料,將會變成新的資料的資料型別。 ---- **程式** ```python= n = False print(n + 1) n = n + 2 print(n) print(n + 1.0) n = n +1.1 print(n) n = True print(n) n = n + 2.3 print(n) ``` ---- **output** ``` 1 2 3.0 3.1 True 3.3 ``` ---- ### **快速寫法** **變數+=數值**和**變數 = 變數 + 數值**相同 **變數 -=數值**和**變數 = 變數 - 數值**相同 **變數 \*=數值**和**變數 = 變數 * 數值**相同 **變數 /=數值**和**變數 = 變數 / 數值**相同 ---- [b006: 電電的梯形](https://judge.tcirc.tw/ShowProblem?problemid=b006) ※python 依目前所教的方法沒辦法同行輸入,所以沒辦法過,更改測試執行來執行。 ![](https://i.imgur.com/JnYjNa1.png) --- ## <span class="blue">註解</span> 在讀寫程式時,我們常會需要用到註解來標示此段程式碼在做什麼,以便之後寫程式時,或他人觀看你的程式碼時,能快速知道你的程式在做什麼。程式執行時不會執行註解的部分。 註解有兩種寫法 1. \# 註解....(只能用於單行) 2. """ 註解1 註解2... """(能用於多行) ---- ```python= print("hello") # 輸出 Hello """ 我是註解 """ ``` --- ## <span class="blue">錯誤(Error)</span> ### 語法錯誤 如果程式語法上有錯誤,那電腦就看不懂我們在寫什麼。 ```python= n = 0 n + 1 = n #沒有這種寫法 n++ #c/c++的語法 print(a) #沒設定變數a prin(n) #沒設定prin函式(之後會教自訂函式),也不是print() ``` ---- ### 語意錯誤 我們寫的程式和預期的不同,但語法正確,電腦會執行,不過結果和預期不同 如:要n但寫成m ```python= n = 1 m = 2 print(m) ``` **output** ``` 2 ``` 因為n寫成m,所以輸出2。
{"title":"Python第一週講義 臺中一中電研社","slideOptions":{"theme":"sky","transition":"convex"}}
    738 views
   owned this note