# Python --- [TOC] --- ## \[1] 簡介 Python 是一種直譯式、物件導向的程式語言,擁有完整函式庫,社群上也有大量的第三方模組,有著易上手、應用廣泛的特性,是一個很適合初學者的語言。 與 Python 3 不相容的 Python 2 已確定不會再推出新版本,所以建議都從 Python 3 開始學,這篇講義也是以 Python 3 為主所編寫的。 --- ## \[2] 整合開發環境 ### Python IDLE 最簡單的直譯器,雖然功能不多但很方便,可以直接在 shell 輸入指令,可以拿來測試程式之類的。 ### Jupyter Notebook 支援很多種直譯語言,很多網站上的討論也是以 Jupyter Notebook 的方式呈現,還有一些很實用的小功能,是很不錯的 IDE。 ### Visual Studio 微軟開發的 IDE,功能很多且支援多種語言,用熟練後是個非常強大的工具。 --- ## \[3] 輸入輸出 ```python= print(value, sep = "", end = "\n") ``` 多個輸出值用逗號隔開。 sep 為輸出值的分隔字元,預設是空白。 end 為輸出結束所插入之字元,預設是換行字元。 ``` 變數名稱 = input() ``` 輸入之資料預設為字串,( ) 內可寫入欲輸出變數。 --- ## \[4] 變數 英文、數字、底線、中文組成,大小寫有別,建議使用英文與數字。 不可用系統保留字或內建函數。 不必先宣告,也不必設定資料型態。 --- ## \[5] 資料型態轉換 ### int(value)、float(value)、str(value) 可以強制轉換資料型態。 ### type(value) 列出該變數的資料型態。 ### eval(value) 將字串轉為 int 或 float,可以用作運算。 ### None 有些人習慣先把變數先予以定義,尚未用到時就可以把變數的值設為 None,此時變數的資料型態為 NoneType。 --- ## \[6] 關係運算子 | 大於 | 大於等於 | 小於 | 小於等於 | 等於 | 不等於 | |:----:|:--------:|:----:|:--------:|:----:|:------:| | > | >= | < | <= | == | != | --- ## \[7] 邏輯運算子 * and * or * not --- ## \[8] 條件判斷 if… elif… else,不可以寫 else if。 ```python= a = 5 if a: #變數 a 存在 print(a) ``` 變數存在回傳 True。 --- ## \[9] 字串 字串由字元組成,可以想成字元序列,可以取索引值、長度、切片。 | 逸出字元 | \\' 單引號 | \\'' 雙引號 | \\n換行 | \\\ 反斜線 | | -------- | --------- | ---------- | ------ | --------- | ### 字串常見用法與函數 ![](https://i.imgur.com/fTwQmaf.jpg) --- ## \[10] 格式化輸出 ``` print("字串" % (變數區)) ``` | 字元 | 字串 | 整數 | 浮點數 | |:----:|:----:|:----:|:------:| | %c | %s | %d | %f | ![](https://i.imgur.com/wcELNVi.png) 在程式實例中,可以看出這樣無法控制浮點數的輸出。 ![](https://i.imgur.com/Do8VVDy.png) %+5d 中的 5 代表留 5 格,正號表示如果數值資料是正的話會加上正號。 %3.2f 中的 3 代表總共留 3 格,2 代表小數部分留 2 格。 %-5d 中的 5 代表 5 格,負代表靠左對齊。 --- ## \[11] format ``` print("字串內容".format(變數區)) ``` 字串中的變數一律用 { } 表示。 ![](https://i.imgur.com/uiGVcGV.png) 0, 1 可不編號,Python 會照順序對應。 ![](https://i.imgur.com/6vLrZt1.png) 第一行 > 表示向右對齊,總共留 5 格,小數留 2 格。 第二行 < 表示向左對齊,總共留 6 格,其餘用 x 補滿。 --- ## \[12] 串列 串列是一系列元素組成的序列,而且裡面的元素可以是不同的資料型態。 元素放在中括號內,用逗號隔開。 索引值正方向從 0 開始,反方向從 -1 開始。 ### 串列常見用法與函數 ![](https://i.imgur.com/Fpyz0Rf.jpg) --- ## \[13] 迴圈 ### while 迴圈 通常運用在不知道迴圈執行次數的情況。 寫法同其他語言,記得加冒號與縮排。 ### for 迴圈 ``` for 變數 in 物件: 程式碼 ``` 通常運用在知道迴圈執行次數的情況。 物件可以是串列、字串、元組或字典。 ```python= ian = ["b", "a", "r", "o"] for m in ian: print(m) ``` for 迴圈第一次執行時,m 的內容是 "b",所以印出 b,接著執行第二次迴圈,這時 m 的內容是 "a",所以印出 a……就這樣跑到串列最後一個元素。 ``` for 變數 in range(start, end, step): 程式碼 ``` for 配合 range( ) 函數,start 預設是 0,step 預設是 +1。 ### for… else 迴圈 當 for 迴圈中的所有 if 敘述條件為 False 時會執行 else。 ```python= num = int(input()) if num == 2: print("是質數") else: for n in range(2, num): if num % n == 0: #如果整除則跳出迴圈 print("不是質數") break else: #都沒有整除則是質數 print("是質數") ``` ### break continue 跟其他語言一樣。 --- ## \[14] 元組 Tuple 元組中的元素值和個數不可修改,除非重新定義該元組。 元素放在小括號內,用逗號隔開。 應用在串列上的用法與函數如果不會更改內容,就可以應用在元組上。 ![](https://i.imgur.com/9hratbd.jpg) --- ## \[15] 字典 Dictionary 字典的元素是用鍵(key)對應值(value)的方式配對儲存,鍵與值用冒號分開。 元素放在大括號內,用逗號隔開,元素排列並沒有固定順序。 key 只能是數字、字串、元組,且不可重複,value 可以是任何物件。 ### 字典常見用法與函數 ![](https://i.imgur.com/18ahnSZ.jpg) --- ## \[16] 函數 自己設計一個函數,可以在主程式中使用,讓程式更精簡。 ``` def 函數名稱(參數): 程式碼 return 回傳值 ``` 參數可以有多個,彼此用逗號隔開。 回傳值也可以有多個,彼此用逗號隔開。 ``` def 函數名稱(參數, 參數1 = value): ``` 參數可以被賦予預設值,有預設值的參數要放在右邊。 ```python= def icecream(icecream, *toppings): print(icecream, "冰淇淋的配料有", end = "") for topping in toppings: print(topping, end = " ") ``` ![](https://i.imgur.com/NasUZ50.png) 前面加上 ``*`` 的參數代表可以有多個參數傳入,要放在最右邊。 --- ## \[17] 程式異常 捕捉程式異常,執行特殊程序,然後程式可以繼續執行。 ``` try: 程式 except 異常物件: 程式 ``` 執行 try 下面程式,如果有異常,檢查是否是指定的異常物件,如果是就執行 except 下面程式。 ### 常見的異常物件 ![](https://i.imgur.com/bcH5Uzy.jpg) --- ###### tags: `ckefgisc23rd`