在前一篇文章內容中帶大家建立了 pipenv 虛擬環境,並在虛擬環境中裝了套件。又安裝了 Vscode ,並透過設定 venv 路徑讓 Vscode 能夠在左下角選擇開發環境。
Python 是一個十分易讀且易用的語言,操作相對來說人性化,今天要帶大家操作過一遍 Python 的基礎語法,包含了基礎操作跟常見資料型態,如果有這些基礎的可以先跳過等之後內容歐。
▲ 在 Vscode 中建立 python 檔案 (副檔名為 .py)
讀者可以在 Vscode 中打入以下程式,之後按下右上角的 Run Python File in Terminal(形似播放鍵)
print('Hello World')
▲在剛才創建好的檔案內打入 hello world 程式碼,並按下執行使程式印出 hello world
python 是個動態語言,意思是在執行期才確定變數型別,也就是說在使用變數之前不須宣告變數(指定資料型別)。
變數是在記憶體中的一塊位置,有自己的變數名稱和值,方便我們儲存資料。 =
稱為賦值運算子,會將等號右方的值賦予(assign)給左方的變數。以下為一些賦值的例子。
a = 77495358 #將 77495358 這個值賦予給 a 這個變數
b = 3.14159 #將 3.14159 這個值賦予給 b 這個變數
c = 'Hello Here' #將 'Hello Here' 這個值賦予給 c 這個變數
# 以下為一些方便語法
a, b, c = 77495358, 3.14159, 'Hello Here' # 分別將 77495358, 3.14159, 'Hello Here'賦予給 a, b, c
x = y = z = 77495358 # 將 77495358 這個值賦予給 x y z 三個變數
這邊列出常見 7 個 Python 資料型態,使用 type()
函式會回傳該變數的型態為何。
浮點數就是數學中的小數。
'''
整數、浮點數範例
'''
a = 5 # 將 5 這個整數賦予給 a 這個變數
b = int('2016') # 將 '2016' 這個字串轉換為整數 2016 之後賦予給 a 這個變數
# 整數的 + - * / 運算
c = a + b
print(c) # Output: 2021
print(type(c)) # Output: <class 'int'>
c = a - b
print(c) # Output: -2011
print(type(c)) # Output: <class 'int'>
c = a * b
print(c) # Output: 10080
print(type(c)) # Output: <class 'int'>
# 除法有分為兩種,真除法、無條件捨去除法
# 真除法與會將數字的小數點保留
c = a / b
print(c) # Output: 0.00248015873015873
print(type(c)) # Output: <class 'float'>
# 無條件捨去除法會將運算後的小數點去除
c = a // b
print(c) # Output: 0
print(type(c)) # Output: <class 'int'>
用於邏輯判斷的值,值有兩種 True
False
'''
布林值範例
'''
a = 87 < 5478
print(a) # Output: True
print(type(a)) # Output: <class 'bool'>
b = 878 >= 0
print(b) # Output: False
print(type(b)) # Output: <class 'bool'>
字串的表示方法為文字前後包上 '
或 "
,若要在字串中放入引號,需在要放入的那個引號前方加上反斜線 \
也就是斜率為負的那個斜線將欲加入的引號跳脫。
注意字串在程式中僅為文字不具意義 e.g."我要 10000000萬" 你的程式不會理你(執行動作),你的銀行也不會變多錢。
後天會介紹字串的更多使用技巧。
'''
字串範例
'''
a = 'Hello '
b = ',World'
c = a + b
print(c) # Output: Hello, World
print(type(c)) # Output: <class 'str'>
c = a*5 + b
print(c) # Output: Hello Hello Hello Hello Hello ,World
print(type(c)) # Output: <class 'str'>
類似於其他語言中的 array , 但它的功能更多。串列中能存在多個元素(變數),其中第一個元素的索引值(index)為 0,第二個為 1 ... 以此類推。
串列以中括號包住一系列以逗號相隔的元素表示。
▲說明了串列中第一個元素的索引值(index)為 0 、第二個為 1...
'''
串列範例
'''
a = ['1', '2', '3', '4']
print(type(a)) # Output: <class 'list'>
print(a[0]) # OutPut: '1'
print(a[2]) # Output: '3'
# 範圍取值
# myList[start(開始的index):end(結束的index):sep(間隔)]
print(a[1:3]) #Output: ['2', '3']
print(a[0:3:2]) #Output: ['1', '3']
print(a[::-1]) #Output: ['4', '3', '2', '1']
#串列操作
a.append('6') #在串列最後方放入元素
print(a) #Output: ['1', '2', '3', '4', '6']
a.insert(4, '5') #在串列中 index 為 4 的地方放入 '5' 這個元素
print(a) #Output: ['1', '2', '3', '4', '5', '6']
a.remove('3') #在串列中移除 '3' 這個元素,若有多個 '3' 則移除 index 較小的
print(a) #Output: ['1', '2', '4', '5', '6']
b = a.pop() #移除在串列中的最後一個元素,並回傳該元素
print(a) #Output: ['1', '2', '4', '5']
print(b) #Output: '6'
#串列長度
print(len(a)) #Output: 4
#元素可為不同型態
a = [77495358, 3.14159, 'Hello Here', [1, 2, 3]] #串列中能存在不同資料型態的元素,甚至是另一個串列
print(type(a[0])) #Output: <class 'int'>
print(type(a[1])) #Output: <class 'float'>
print(type(a[2])) #Output: <class 'str'>
print(type(a[3])) #Output: <class 'list'>
元組是固定板的串列,是個不可變物件(immutable),當被定義後狀態就不可以被改變,特色是
元組以小括號包住一系列以逗號相隔的元素表示。
'''
元組範例
'''
a = 1, 2, 3, 4 #封裝(packing)
a1, a2, a3, a4 = a #拆封(unpacking)
print(a1) #Output: 1
print(a2) #Output: 2
print(a3) #Output: 3
print(a4) #Output: 4
跟一般的字典一樣,是個一對一的結構(key:value),一個 key 會對上一個 value。
元組以小括號包住一系列以逗號相隔的元素表示。
'''
字典範例
'''
dic = {
'1': 500,
'2': 600,
90: 'OwO'
}
print(dic['1']) #Output: 500
print(type(dic['1'])) #Output: <class 'int'>
print(dic[90]) #Output: 'OwO'
print(type(dic[90])) #Output: <class 'str'>
dic['new'] = 'hello' #也能給值
print(dic) #Output: {'1': 500, '2': 600, 90: 'OwO', 'new': 'hello'}
print(type(dic)) #Output: <class 'dict'>
dic['new'] = 'world' #修改值
print(dic) #Output: {'1': 500, '2': 600, 90: 'OwO', 'new': 'world'}
print(type(dic)) #Output: <class 'dict'>
del dic['new'] #刪除對應 key-value
print(dic) #Output: {'1': 500, '2': 600, 90: 'OwO'}
print(type(dic)) #Output: <class 'dict'>
變數在電腦內如果沒有告訴他印在螢幕上,它就不會主動告訴你變數內的值。上面告訴大家如何在程式內定義變數的值,接下來要跟大家介紹 python 程式輸入及輸出的語法,大家都能在自己的 Vscode 中試試。
# 輸入
userInput1 = input() #讀到這行時,程式會停在這邊等你輸入一個值,並將輸入的值以字串的型態賦予給 userInput1
userInput2 = input('your name: ') #與上一個類似,不同在於它會先輸出 your name: 之後再等待使用者輸入
userOutput1 = 'OwO'
userOutput2 = '87'
#輸出
print(userInput1) #將 userInput1 的值印在螢幕上,預設會在輸出後自動換行
'''
OwO
'''
print(userInput1, userInput2) #可用逗號隔開想一次輸出的值,預設每個變數以空白相隔,
'''
OwO 87
'''
print(userInput1, end = ' ') #傳入的參數加個 end 可以更改 print 結束後需輸出的文字,預設是換行,範例中是以空白相隔
print(userInput2)
'''
OwO 87
'''
print(userInput1) #不加 end 參數則是以換行隔開每個 print
print(userInput2)
'''
OwO
87
'''
今天跟讀者介紹在 Python 中基礎的操作與資料類型,對於這些資料型態尤其是 list 與 dict 都會在接下來的幾天經常用到,讀者們能再熟悉這些基本用法,並在自己的 Vscode 上面試試。
明天會帶給大家 Python 的條件判斷及迴圈的用法,沒有接觸過或有一些基礎的讀者都能關注歐~
Python 基本語法 : https://ithelp.ithome.com.tw/articles/10200505
Python 基礎教程 : https://www.runoob.com/python/python-tutorial.html
Python3.9 document : https://docs.python.org/3/