BY 企鵝
講師介紹
Python的創始人吉多·范羅蘇姆在聖誕節發想出來的程式語言
因為喜歡Monty Python's Flying Circus 電視喜劇系列,而使用Python作為該程式語言的名字
為直譯式語言,也就是邊執行邊轉譯成機器語言,這造成它運行的速度比較慢
語法簡潔,可讀性高,適合剛入門的新手接觸
幾乎在所有作業系統跟裝置上都可以運行,兼具實用性,從簡單的應用程式開發到龐大專案設計都能應用到
幾乎寫任何類型的程式都有世界各地大神開發的函式庫可以直接利用
VS Code
print( ):輸出
print("Hello World!")print( ) 會輸出括號中的內容(顯示在螢幕上)並換行
文字要放在雙引號內,代表它是一個字串(string)
print():輸出
print("First", "Second", "Third")如果要一次列印多個文字,可以用逗號分隔
每個文字會以空格分開
註解、換行
print("Hello World!") #English
print("Bonjour le monde") #Francais
print("Hallo Welt") #Deutsch
print("New... \n")
print("Line")# 後面的文字是註解,不影響程式執行
如果要換行則要加上\n,也就是跳脫字元
程式碼當中的空格、換行不會影響程式執行
變數是什麼?
為變數賦值並進行運算
程式中的 "=" 和數學符號中的等於的意義並不相同
這邊的 "=" 代表賦值(asign)
以上述程式為例,這串程式碼代表
將變數 a 的值設為變數 b + c 的和
b = 3 #將變數b的值設為3
c = 4 #將變數c的值設為4
a = b + c #將變數a的值設為b與c的和
print("a =", a) #a = 7更多的運算
就是基本的加減乘除
比較特別的是 "%" 是取餘數
舉個例子: 5 % 4 = 1
b = 3 #將變數b的值設為3
c = 4 #將變數c的值設為4
a = b + c #將變數a的值設為b與c的和
print("a =", a) #a = 7
a = b - c #將變數a的值設為b與c的差
print("a =", a) #a = -1
a = b * c #將變數a的值設為b與c的積
print("a =", a) #a = 12
a = b / c #將變數a的值設為b與c的商
print("a =", a) #a = 0.75
a = b % c #將變數a的值設為b/c的餘數
print("a =", a) #a = 3資料型態
a = 1 #int(整數)
b = 0.666 #float(浮點數/小數)
c = "12345" #string(字串)在程式中有所謂「資料型態」的差別
在其他語言(比如C++)中會要求宣告資料型態
但Python支援所謂「動態型別」
就是電腦會自動幫你判斷變數的資料型態
不過自然執行速度會相對較慢
除法(小數)運算
int( )就是將任意資料型態的東西轉成整數
類似的還有str( )等
需要留意的是在C++中一般的除法
是用無條件捨去的計算方式
更多更多的運算
就是更懶一點的寫法
a = 3
b = 4
c = 5
d = 6
e = 7
f = 8
a += 1 #a = a+1 -> 4
b -= 1 #b = b-1 -> 3
c *= 3 #c = c*3 -> 15
d /= 2 #d = d/2 -> 3
e %= 3 #e = e%3 -> 1
f**=3 #f = f*f*f(f的三次方) -> 512更多更多更多的運算(?
字串可以用加號連接
數字和字串不能直接相加
First = 95
Second = 27
first = "95"
second = "27"
PlusInt = First + Second
PlusString = first + second
#TypeError: can onlyconcatenate str (not "int") to str
PlusIntStr = first + Second
print("PlusInt =", PlusInt) #PlusInt = 122
print("PlusString =", PlusString) #PlusString = 9527輸入:input( )
如同我在這個主題的開頭所陳述的:
如果我有需要輸入並儲存的數值
應該要怎麼辦呢?
answer = input("Question 01 ")
print(type(answer)) #<class 'str'>
print(answer)
answer = int(answer)
print(type(answer)) #<class 'int'>
print(answer)需要留意的是input( )預設的資料型態是string
如果想要轉成整數記得使用int( )
補充:想知道資料型態可以使用type( )
變數命名規則
我們先來看看英文版的解說:
變數命名規則
在開發大型專案時,我們經常陷入一個
「一覺醒來忘記昨天打了啥」的狀態
所以除了下註解之外,好懂的變數名稱
也可以幫助自己和團隊成員更好讀懂code
我們再來看個兩個範例:
#not recommended:
x = "John Smith"
y, z = x.split()
print(z, y, sep = ", ")
#Smith, John#recommended:
name = "John Smith"
name_1st, name_2nd = x.split()
print(name_1st, name_2nd, sep = ", ")
#Smith, JohnList Basic
list(串列),基本上等於其他語言的array(陣列)
讓使用者可以透過索引編號去存取數值
你可以想像list是很多有編號的變數所組成的
list的編號從0開始,因此第一個元素的索引值是0,
第二個是1,以此類推
[]代表空陣列
lst = [1415, "summer", 3.1415926, [1,2,3]]
print(lst[1]) #summer
print(lst[2]) #3.1415926
lst_empty = []
print(lst_empty) #[]因為Python支援動態型別的關係,
整數、小數、字串或者另一個list都可以
放到同一個list中
List indices:取值&len( )
如果在一個list中有多個list,
取值方法如下:
lst = [1415, "summer", 3.1415926, [1,2,[3,4,5]]]
print(lst[3][2]) #[3,4,5]
print(lst[3][2][2]) #5如果想知道該list的長度,
可以使用len( )
lst = [1415, "summer", 3.1415926, [1,2,[3,4,5]]]
print(len(lst)) #4QUICK CHECK: LEN( )
len(q1) = ?
len(q2) = ?
len(q3) = ?
q1 = [0]
q2 = []
q3 = [[1, 3, [4, 5], 6], 7]List indices:負索引值
在Python中,你可以使用負索引值,
即從list的最後一個索引值開始計算
[-1] 表示倒數第一個值,[-2] 代表倒數第二個
以此類推
lst = [1415, "summer", 3.1415926, [1,2,[3,4,5]]]
print(lst[-1][-1]) #[3, 4, 5]
print(lst[-1][-1][-1]) #5List indices:索引
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(lst[::]) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(lst[2::]) #[2, 3, 4, 5, 6, 7, 8, 9]
print(lst[:6:]) #[0, 1, 2, 3, 4, 5]
print(lst[::2]) #[0, 2, 4, 6, 8]
print(lst[2:6:2]) #[2, 4]串列名[起始位置的索引值:結束位置的索引值+1:間隔]可以選擇性的填入這三個值
沒有填入的會用預設值
Modifying List:append( ) & extend( )
append( )可以將一個元素添加到list的最尾端,
extend( )可以將兩個list連起來:
lst = [1,2,3,4]
lst.append(5)
print(lst) #[1, 2, 3, 4, 5]
lst = [1,2,3,4]
lst.append([5,6,7])
print(lst) #[1, 2, 3, 4, [5, 6, 7]]
lst = [1,2,3,4]
lst.extend([5,6,7])
print(lst) #[1, 2, 3, 4, 5, 6, 7]Modifying List:insert( )
insert( )可以將一個元素插在
宣告的index值和該值的上一值的中間:
lst = [1,2,3,4]
lst.insert(2, "two")
print(lst) #[1, 2, 'two', 3, 4]
lst.insert(0, "start")
print(lst) #['start', 1, 2, 'two', 3, 4]
lst.insert(-1, "last?")
print(lst) #['start', 1, 2, 'two', 3, 'last?', 4]Modifying List:del & remove( )
del 的功能是刪除 list[n] 的那一個元素
透過取index達成指定元素刪除
remove( )是直接指定某個要刪除的值
如果list中有兩個以上相同的值
只會移除第一個找到的值
lst = [1,3,4,5,3]
del lst[1]
print(lst) #[1, 4, 5, 3]
del lst[:2]
print(lst) #[5, 3]
lst = [1,3,4,5,3]
lst.remove(3)
print(lst) #[1, 4, 5, 3]
lst.remove(3)
print(lst) #[1, 4, 5]Modifying List:list( ) & pop( )
使用list( ),可以將字串轉成list的型態
eco_friendly = list("How dare you?!") #將字串轉成list
print(eco_friendly) #['H', 'o', 'w', ' ', 'd', 'a', 'r', 'e', ' ', 'y', 'o', 'u', '?', '!']
eco_friendly.pop() #刪除最後一個元素
print(eco_friendly) #['H', 'o', 'w', ' ', 'd', 'a', 'r', 'e', ' ', 'y', 'o', 'u', '?']
eco_friendly.pop(2) #刪除索引值2,也就是第三個元素
print(eco_friendly) #['H', 'o', ' ', 'd', 'a', 'r', 'e', ' ', 'y', 'o', 'u', '?']
eco_friendly.remove('o') #移除第一個'o'
print(eco_friendly) #['H', ' ', 'd', 'a', 'r', 'e', ' ', 'y', 'o', 'u', '?']pop( )如果在()中沒有給索引值,會刪除預設值
也就是最後一個元素
Sorting List:sort( )
sort( )可以將list中的數字由小到大排序
如果list中的元素是string,
則會依照第一個字元的ASCII CODE由小到大排序
如果第一個字元相同,則會比較第二個字元
一個陣列中如果有不同資料型態的元素,則無法比較
lst = [3, 8, 4, 0, 2, 1]
lst.sort()
print(lst) #[0, 1, 2, 3, 4, 8]
lst = ["Python", "is", "better", "than", "C"]
lst.sort()
print(lst) #['C', 'Python', 'better', 'is', 'than']ASCII CODE
Sorting List:sort( )
sort( )也可以將list裡的list做排序,
依照第0~n個index中的值由小到大排序
如果改成sort(reverse=True),
就會以由大到小的方式排列
lst = [[3,5], [2,9], [2,3], [4,1], [3,2]]
lst.sort()
print(lst) #[[2, 3], [2, 9], [3, 2], [3, 5], [4, 1]]
lst = [2,3,7,1,4,6]
lst.sort(reverse=True)
print(lst) #[7, 6, 4, 3, 2, 1]Other Common List Operations:in
in 會回傳目標值是否在這個list裡面
如果是,會回傳True ;反之, 回傳False
not in 則相反
lst = [1,3,4,5]
print(3 in lst) #True
print(3 not in lst) #False
print(2 in lst) #False
print(2 not in lst) #TrueOther Common List Operations:+ & *
+ 可以把兩個list的內容加起來,合併成一個list
* 可以將list的內容乘倍,並合併成一個list
a = [1,2,3]
b = [4,5]
c = a + b
print(c) #[1, 2, 3, 4, 5]
x = ['None']
y = x * 4
print(y) #['None', 'None', 'None', 'None']
z = [3,1]
print(z * 2) #[3, 1, 3, 1]Other Common List Operations:max( ) & min( )
max( )會回傳list的最大值;
min( )則是最小值
如果一個list裡有不同的資料型態則會報錯
lst = [3,7,0,-2,11]
print(max(lst)) #11
print(min(lst)) #-2Other Common List Operations:index( ) & count( )
index( )會回傳目標值在list的index值
若list中有多個相同目標值,則回傳第一個
若是該值沒有在list中,則會報錯
count( )會回傳目標值在list中出現了幾次
x = [1,3,"five",7,-2,7]
print(x.index(7)) #3
print(x.index(5)) #ValueError
y = [1,2,2,3,5,2,5]
print(y.count(2)) #3
print(y.count(5)) #2
print(y.count(4)) #0Summary of List Operations
下次小社課上再會!