--- tags: 機器學習,Python, --- # 機器學習 第二章 Python基礎操作 ## 一、資料類型 ### (一)數字(Number) 常用數字資料類型,整數(10, 20, ...)、浮點數(0.1, 11.2, ...) ### (二)布林值(Boolean) 計算機基本為二進制可表示為 : True / False;1 / 0 , 常運用在條件語句中 ### (三)字串(String) 字串為一堆字符(character)的組成,應用廣泛使用 "" , '' 來表示。("HBO", 'NBA') ### (四)列表(List) 列表可自行定義,使用[]來表示, 如列表A為【10, 0.8, "NBA"】 故 A[0]=10,A[1]=0.8,A[2]=NBA (Python陣列起始位址為 0) ### (五)元組(Tuple) 與列表相同但無法更改列表內的資料,使用()來表示,元組A為(10, 0.8, "NBA") A[0]=10,A[1]=0.8,A[2]=NBA A[0]=1 //顯示error 因位元組無法修改 ### (六)字典(Dictonary) 像字典一樣,建立索引找取資料,關鍵字{(key):值(value)}來表示,如字典A為{1:"HBO","NBA":97} A[1] = HBO , A[NBA] = 97 //輸入索引,輸出為資料 ### (七)集合(set) 集合為不計算重複及順序之列表,使用{}來表示。 ## 二、資料運算 ### (一)算數運算(Arithmetic Operators) ### 1、整數運算 ```python= 加:10+4 #output 14 減:10-4 #output 6 乘:10*4 #output 40 除:10/4 #為整數除法所以只執行整數部分運算 output 2 ``` ### 2、整數與浮點數運算 ```python= #整數與浮點數運算則顯示浮點數 加:10+4.0 #output 14.0 減:10-4.0 #output 6.0 乘:10*4.0 #output 40.0 除:10/4.0 #output 2.5 ``` ### 3、餘數運算 ```python= #取餘數運算: 10%4 #output 2 10(被除數) / 4(除數) = 2(商數) ... 2(餘數) ``` ### 4、指數運算 ```python= 指數運算: 2.0**3 #output 8.0 2.0**3 = 2.0*2.0*2.0 = (2.0)^3 = 8.0 ``` ### (二)比較運算(Comparison Operators) > (大於), < (小於)、, >=(大於等於), <=(小於等於), ==(等同於), !=(不等於) #### 1、整數比較 ```python= 10 > 4 #output: Ture 10 < 4 #output: False 10 >= 4 #output: Ture 10 <= 4 #output: False 10 == 4 #output: False 10 != 4 #output: Ture ``` #### 2、整數與浮點數比較 ```python= 10 > 4.0 #output: Ture 10 < 4.0 #output: False 10 >= 4.0 #output: Ture 10 <= 4.0 #output: False 10 == 4.0 #output: False 10 != 4.0 #output: Ture ``` ### (三)賦予值運算 #### 1、元組(Tuple) ##### (1)使用範例 ```python= A =(10, 0.8, "NBA") print (A[0]) # output : 10 ``` ##### (2)錯誤示範 ```python= A =(10, 0.8, "NBA") A[0] = 2 #顯示error 因元組無法做修改 ``` #### 2、列表(List) ##### 使用範例 ```python= A =[10, 0.8, "NBA"] print (A[0]) A[0]+10 print (A[0]) # output : 10 20 ``` ### (四)邏輯運算(Logical Operators) (and、or、not) #### 1、and 運算 ```python= A = True and True ##output: True A = True and False ##output: False A = False and True ##output: False A = False and False ##output: False ``` ### 2、or 運算 ```python= A = True or True ##output: True A = True or False ##output: True A = False or True ##output: True A = False or False ##output: False ``` ### 3、not 運算 ```python= A = not True ##output: False A = not False ##output: True ``` ### (五)成員運算(Membership Operators) in ,not in表示是否為成員之一,通常使用在列表、元組、字典、集合中 ### 使用範例 ```python= A=[1,2,4,8,16,"NBA"] ##串列 B=(32,64,128,256,"HBO") ##元組 C={1:"NBA",2:"HBO",3:"ADSL"} ##字典 D={512,1024,2048,4096,"ADSL"} ##集合 ``` ### (1)判斷是否存在 (in) ```python= print (8 in A) ##output : True print ("NBA" in C) ##output : False (因為字典紀錄的是索引並非氏指引的資料) print (1 in C) ##output : True print (A in D) ##output : False ``` ### (2)介紹一個有趣的指令 set #### A、使用方法 ##### set("字串") ```python= a = set("ADSL") print (a) # output {'D','S','A','L'} 將字串猜成字符的集合 ``` #### B、範例 ```python= a = set("ADSL") print (A in a) print (B in a) # output True,False ``` ### (2)判斷是否不存在 (not in) ```python= print (16 not in B) ##output : False print (1 not in C) ##output : True ``` ### (六)集合運算(set Operators) , &, |, - (像文氏圖) ### 1、交集 (&) ```python= D={512,1024,2048,4096,"ADSL"} E={1,2,4,8,16,32,64,4096,"ADSL"} print (D&E) #output : {4096,'ADSL'} #補充IndentationError: unexpected indent #python可以使用Tab及空白鍵但不能混用 ``` ### 2、聯集 (I) ```python= D={512,1024,2048,4096,"ADSL"} E={1,2,4,8,16,32,64,4096,"ADSL"} print (D&E) #output : {1,2,4,8,16,32,64,512,1024,2048,4096,'ADSL'} ``` ### 3、差集 (-) ```python= D={512,1024,2048,4096,"ADSL"} E={1,2,4,8,16,32,64,4096,"ADSL"} print (D&E) #output : {512,1024,2048} ``` ## 三、流程控制 ### (一)條件語句 #### 1、if else ##### (1)使用方式 if (條件式): 執行A內容 else: 執行B內容 符合條件式時執行A內容,不符合條件式時執行B內容。 ##### (2)範例 ```python= a = 0 if a>0 : print("a大於零") else : print("a小於等於零") #output: a小於等於零 ``` #### 2、if else if else (設定多個條件) ##### (1)使用方法 ```python= if (條件1): 執行A內容 elif(條件2): 執行B內容 else: 執行C內容 #符合條件1時執行A內容,符合條件2時執行B內容,不符合條件1.2時執行C內容。 ``` ##### (2)範例 ```python= a = -1 if a>0: print("a大於零") elif a==0: print("a等於零") else: print("a小於零") #output: a小於零 ``` ### (二)迴圈控制 #### 1、for ##### (1)使用方法 for 變數名稱 in (列表、字串、字典、元組): 將(列表、字串、字典、元組)中的資料,逐一取出,逐一處理。 ##### (2)範例 ```python= for x in [4,1,2]: #列表 print("逐一取得列表中的資料",x) #output: 4,1,2 for y in "Hello": #字串 print("逐一取得字串中的資料",y) #output: H,e,l,l,o for z in range(3): #等於 for x in [0,1,2]: print("逐一取得字串中的資料",z) #output: 0,1,2 ``` #### 2、while ##### (1)使用方法 while 條件式: 執行A內容 #當符合條件式時,執行A內容,執行完跳回While再次比較條件,值道條件不符跳出迴圈。 ##### (2)範例 ```python= n=1 while n<5: print(n) n+=1 #output: 1,2,3,4 ``` #### 3、continue ##### (1)使用方法 while (條件式): continue for 變數名稱 in (列表、字串、字典、元組): continue # continue 強制回到迴圈進行下一次判斷。 ##### (2)範例 ```python= n=0 for x in [0,1,2,3]: if x%2 ==0: continue n+=1 print(n) #output: 2 #因為 0,2進入if迴圈遇到continue強制跳出迴圈執行下一次故只加了2次。 ``` #### 4、break ##### (1)使用方法 while (條件式): break for 變數名稱 in (列表、字串、字典、元組): break # break 強制結束迴圈 ##### (2)範例 ```python= n=1 while n<5: if n==3 break n+=1 print(n) #output: 3 #因為n=3時進入if迴圈遇到break強制離開迴圈,故印出3。 ``` ## (三)函數設計 ### 1、函數(Function) 對函數所需要的返回值(return),Python使用 def def 函式名稱 (參數名稱): 函式內部的程式碼 ### 2、範例 #### (1)未加入參數(Case)的函式定義 ```python= # 未加入參數(Case)的函式定義 def sayHi(): print("Hi") ##呼叫函式 sayHi() ##output: Hi ``` #### (2)加入參數(Case)的函式定義 ```python= # 加入參數(Case)的函式定義 def say(x): print(x) ##呼叫函式 say(good) ##output: good ``` #### (3)加入參數與回傳值(Case)的函式定義 ##### a、範例1 ```python= # 加入參數與回傳值(Case)的函式定義 def say(x): print(x) return #若無特別寫就是回傳 None #呼叫函式,取得回傳值 a = say("abc") #回傳值為None 放入a變數中 print (a) ##output: None ``` ##### b、範例2 ```python= ## 加入參數與回傳值(Case)的函式定義 def add(x,y): result = x+y return "Hi" ##呼叫函式,取得回傳值 a = add(3,4) #回傳值為Hi 放入a變數中 print (a) ##output: Hi ``` ##### c、範例3 ```python= # 加入參數與回傳值(Case)的函式定義 def add(x,y): result = x+y return result ##呼叫函式,取得回傳值 a = add(3,4) #回傳值為7(3+4) 放入a變數中 print (a) ##output: 7 ``` #### (4)加入預設參數(Case)的函式定義 ##### 範例 ```python= # 加入參數預設與回傳值(Case)的函式定義 def say(x="Hi"): print(x) #呼叫函式 say("good") say() ##output: good,Hi ##若有給參數則印出參數,若無參數值則印出預設值Hi ``` #### (5)無限參數(Case)的函式定義 ##### a、說明 def 函式名稱(*無限參數) 無限參數以Tuple(元組)資料形態處理 函式內部的程式碼 #呼叫函式,可傳入無限多個參數 ##### b、範例 ```python= ## 無限參數(Case)的函式定義 def avg(*ns): for x in ns: sum=sum+n print(sum/len(ns)) ##呼叫函式 avg(4,6) avg(3,5,10) avg(1,4,-1,-8) #output : 5,6,-1 ``` ## (四)程式庫導入 ### 1、使用方法 ```python= import math #導入math程式庫,可以直接使用程式庫裡的函式 from exp import #只從math程式庫導入exp函式 from exp import as ex ##只從math程式庫導入exp函式,並將exp取綽號為ex,要使用時ex()即可 ```