Python語法

Python檔案的副檔名為.py,不同於一般語言使用 { } 來包含程式區塊,Python使用相同縮排距離表示這些程式屬於同一程式區塊,縮排間距的大小並沒有限制,但是不同的程式區塊最少要間距1個空白。以下圖為例,可以看到程式 print(msg) 出現紅色底顯標示錯誤,因為 print(msg) 屬於條件 if 的程式區塊,因此它最少要在 if 命令之後1個空格以上,而所有屬於 if 程式區塊均須有相同的間距,Python程式註解在註解文字前加上 #

變數設定

變數用於儲存輸入資料或計算結果,Python變數名稱可由英文字或底線符號(_)開始,同時變數名稱大小寫英文字為不同的變數,不同於強型態語言(所有變數均須事先定義要儲存資料類型),Python變數可以不須事先宣告儲存類型,同時Python變數資料類型也會隨儲存值而改變(如下圖),下圖中 type() 函數用於回傳變數資料類型。雖然Python變數資料類型會隨儲存值而改變,可是使用者還是可以明確設定變數資料類型,如果使用者想要明確設定變數資料類型,可以使用下列的資料類型來定義或進行資料類型轉換(文字性數字轉數字或數字轉文字等)。

變數資料類型

Python資料類型包含:文字類型(str)、數字類型(int、float、complex)、順序類型(list、tuple、range)、對應類型(dict)、集合類型(set、frozenset)、布林類型(bool)、二進制類型(bytes、bytearray、memoryview),以下對於各個資料類型進行簡單描述。

文字類型(str):

設定文字類型變數會將文字字串置於雙引號或單引號內(如下圖),請注意 "123" 為文字 123 ,不可用於數字計算,如需進行數字計算,則須將其資料類型轉為數字資料類型才可以。

數字類型(int、float、complex):

數字類型用於計算,下圖輸出 int、float、complex 數字類型,其中複數開根號函數(cmath.sqrt()),因為定義於 cmath 模組中,因此必須使用 import 命令匯入 cmath 模組,才能使用 cmath.sqrt() 函數,常用模組會在後續課程說明。

如果使用者對文字性數字進行運算時,Python會顯示顯示錯誤(如下圖),Python + 號除了用於數字計算之外,如果使用對象為文字時, + 號則用於文字合併。當使用者希望將文字性的整數 a 轉換為數字,則可使用資料類型 int 來進行轉換,浮點數與複數的轉換使用 floatcomplex

練習:請設定變數 school 值為 南臺科技大學,變數 dept 值為 資訊管理系,請用這兩個變數印出 南臺科技大學 資訊管理系,請注意兩個字中間要有一個空格。

練習:請匯入 math 模組,並使用 math.pi 印出半徑 2 的圓面積(圓面積=π x 半徑平方)。

順序類型(list、tuple、range):

順序類型(list、tuple、range)將一連串的資料值儲存於單一變數中,清單(list)將儲存資料置於方括號([])中,每個值以逗號隔開、元素(tuple)將儲存資料置於小括號(())中,每個值以逗號隔開、範圍(range)則為一整數序列。

清單(list)項目內容可改變,有順序,使用方括號來建立清單,方括號搭配項目參考位置值用於存取清單項目,第一個項目參考位置值為0,清單項目內容值可以不同。

練習:設定清單變數 x 值包含5個值 1,2,3,4,5,請印出變數 x 第1,3,5 數字和。

元素(tuple)項目內容於元素建立後不可改變,項目有順序,使用小括號建立元素,方括號搭配項目參考位置值用於存取項目,第一個項目參考位置值為0,元素項目內容值可以不同,如果元素建立後改變內容會產生錯誤。

練習:設定元素變數 x 值包含5個值 1,2,3,4,5,請印出變數 x 第1,3,5 數字和。

練習:設定元素變數 x 值包含5個值 1,2,3,4,5,請將第二個數值改為6(思考:怎麼做才會對)。

範圍(range)項目為順序整數值,有順序,內容建立後不可改變,使用 range(起始值,結束值,間距值) 函數來產生範圍項目,使用方括號搭配項目參考位置值來存取項目,如果沒有設定起始值,起始值預設為0,如果沒有設定間距值,間距值預設為1,產生順序整數值由起始值開始,每次增加或減少間距值,一直到結束值為止,但是請注意 range 不會包含結束值,起始值、結束值、間距值均為整數。

練習:設定元素變數 x 範圍,包含項目 1,2,3,4,5,並印出各個項目值。

練習:設定元素變數 x 範圍,包含項目 2,4,6,8,10,並印出各個項目值。

練習:設定元素變數 x 範圍,包含項目 10,8,6,4,2,並印出各個項目值。

對應類型(dict):

對應類型(dict)將資料定義於大括號({})中,項目資料為許多 項目名稱:項目值 的組合,使用者可使用方括符搭配項目名稱來取得項目值,項目名稱不可重複,項目內容可改變,有順序。

練習:設定對應類型變數 x,包含 id 與 name 兩個項目,值分別為自己 學號與姓名,之後請印出這兩個項目值。

集合類型(set、frozenset):

集合類型(set)將資料定義於大括號({})中,項目資料不可重複,項目內容可增減,沒有順序(資料位置不代表順序),使用者可以用迴圈搭配運算子 in 來取得或檢查集合項目。集合類型(frozenset)將可循環資料類型(list、tuple、dict、set)轉換為內容不可增減的集合物件。

練習:設定集合變數 x,包含 資管系、企管系、行流系與財金系,將變數 y 值分別設為 資管系與資工系,請印出變數 y 是否在 集合變數 x 中。

二進制類型(bytes、bytearray、memoryview):

bytes 為有順序、不可修改,使用方式為(bytes(資料,編碼方式))。中,bytearray 為有順序、可修改,使用方式同 bytesmemoryview 讓使用者在程式執行過程中可以直接存取 bytes、bytearray 值,加快存取速度。

運算子

運算子(operator)用於變數與值的運算,常用運算子包含計算、設定、比較、邏輯、隸屬等,接下來每個類別進行介紹。

計算運算子(+、-、*、/、%、//):

計算運算子 +、-、*、/、%、// ,除了加、減、乘、除之外, % 代表求餘數, // 代表整數除法,也就是小數無條件捨去。

練習:設定變數 x 值為1234,請利用計算運算子分別印出 x 千位值、百位值、十位值與個位值。同時印出變數 x 除以5的餘數。

設定運算子(=、+=、-=、*=、/=、%=、//=、**=):

設定運算子 =、+=、-=、*=、/=、%=、//=、**= ,用於變數設定表示,以 x+=5為例,他代表 x=x+5 ,而 ** 代表次方數。

練習:設定變數 x 值為2,請利用設定運算子分設定 x+2、x-2、x*2、與x/2後,印出變數 x 值。

比較運算子(==、!=、>、>=、<、<=):

比較運算子 ==、!=、>、>=、<、<= ,用於條件比較分別為 等於、不等於、大於、大於等於、小於、小於等於。

練習:設定變數 x 值為1234,請判斷變數 x是否為 奇數或偶數,並印出 True 或 False。

邏輯運算子(and、or、not):

邏輯運算子 and、or、not ,用於串接多個條件比較分別為 且、或、否定。

練習:設定變數 x 值為1,變數 y 值為2,請對下列條件,並印出 True 或 False。變數 x 值為奇數,變數 y 值為奇數、變數 x 值為奇數,變數 y 值為偶數、變數 x 值為偶數,變數 y 值為奇數、變數 x 值為偶數,變數 y 值為偶數。

隸屬運算子(in、not in):

隸屬運算子 in、not in ,用於集合資料類型,判斷是否隸屬於該集合。

練習:設定集合變數 x,包含 資管系、企管系、行流系與財金系,將變數 y 值分別設為 資工系,請印出變數 y 是否在或不在 集合變數 x 中。