哈囉,大家好,我是Teresa,EP. 2統整了如何建置Anaconda開發環境、簡介Jupyter Notebook介面,也以簡單的程式碼示範了Python在執行語法的注意事項:縮排、變數以及註解。EP. 3 要整理的是資料型態以及運算子,讓我們一起看下去吧~同樣也可以跟著簡單範例操作看看哦~
資料型態
為什麼了解資料型態很重要?在程式語言中,變數可以儲存不同類型的資料型態,不同類型的變數可以處理不同的事情。雖然Python沒有宣告變數的指令,但在預設的情境下,Python還是會默認變數的資料型態。如果想要知道某變數的資料型態是什麼的話,可以用 type( ) 函數。
a = “ Teresa” print(type( a ))
雖然Python會默認變數的資料型態,但還是可以用函數指定資料型態,舉例如下:
以函數建立變數 | 資料型態 | 直接將值給變數 |
x = str(“ My name is Teresa”) | str 字串 | x = “My name is Teresa” |
x = int(520) | int 整數 | x = 520 |
x = float(37.5) | float 浮點數 | x = 37.5 |
x = complex(1j) | complex 複數 | x = 1j |
x = list((a , 1 , “two” )) | list 列表 | x = [ a, 1, “two”] |
x = tuple((1, a, “three”)) | tuple 元組 | x = (1, a , ”three”) |
x = range(6) | range 生成整數的函數 | x = range(6) |
x = dict(name = “Teresa”, gender = “female”) | dict 字典 | x = {name = “Teresa”, gender = “female”} |
x = bool(2) | bool 布林 | x = True |
數字
Python有三種數字型態:int、float、complex,建立的方式請參考上方表格。
int 整數
int 是(長度無限的)整數,包含自然數(正數)、負數、0 以及不帶小數部分的數字
float 浮點數
float 是帶有小數部分的數字,包含正數、負數、可以以科學記號 e / E 表示
complex 複數
複數可以分為實部與虛部,虛部結尾以 j / J 結尾
random 模組
Python沒有產生隨機數字的函數,但可以匯入random模組,產生隨機數
import random print(random.randrange(1, 20)) #隨機產生介於1到20之間的隨機數
以上是random模組中的其中一個函數,還想知道更多用法的話請參考:https://www.w3schools.com/python/module_random.asp
指定變數類型
int、float、str 可以直接轉換類型,舉例如下:
a = int(1) # a 會是 1 b = int(2.7) # b 會是 2 (無條件捨去到前一個整數) c = int(“3”) # c 會是 3
a = float(1) # a 會是 1.0 b = float(2.7) # b 會是 2.7 c = float(“3”) # c 會是 3.0 d = float(“5.2”) # d 會是 5.2
x = str(“python3”) # x 會是 ‘python3’ y = str(“2”) # y 會是 ‘2’ z = str(“3.0”) # z 會是 ‘3.0’
字串
Python中的文字是由單個引號( ‘ )或雙引號( ” )包圍,但必須成對
多行字串可以使用( “””)或是(”’)
a = “ This is Python's note for beginners.” b = “”” Hello, my name is Teresa, I am learning Python. Learning Python is interesting.””” print(a) print(b)
[ ]可用於取得字串中的元素,每個字元長度都為1,但第一個字元的位置為0,該數字被稱為索引號
x = “Hello world!” print(x[0]) # H print(x[3]) # l
切片
切片語法可以取得某個字串範圍,可以指定開始索引和結束索引(不包含),並以冒號分隔
a = “Hello world!” print(a[6:11]) #會得到world,從第6個字元~第10個字元(不包含第11個字元)
負索引
使用負索引,可以從字串末端開始切片,-1 代表最後一個字元
a = “ Hello world!” print(a[-3:-5]) #會得到or,從倒數第5個字元~倒數第4個字元(不包含倒數第3個字元)
字串函數
以下是字串的相關函數,如果還想知道更多用法的話,可以參考以下網址:https://www.w3schools.com/python/python_ref_string.asp
函數 | 功能 | 程式碼範例 | 結果 |
len( ) | 可以獲得字串的長度 | a = “ Hello world!” print(len(a)) | 13 |
strip( ) | 從開頭或結尾刪除空白 | a = “ Hello world! ” print(a.strip( )) | “Hello world!” |
lower( ) | 可將字串轉為小寫 | a = “Hello World!” print(a.lower( )) | “hello world!” |
upper( ) | 可將字串轉為大寫 | a = “Hello World!” print(a.upper( )) | “HELLO WORLD!” |
replace( ) | 將字串取代為另一個字串 | a = “Hello, World!” print(a.replace(“H”, “K”)) | “Kello, World!” |
split( ) | 將字串拆分為子字串 | a = “Hello, World!” print(a.split(“,”)) | [Hello”, “ World!”] |
檢查字串
要檢查字串中是否存在某個字詞或字元,可以使用關鍵字: in / not in
text = “ Hello, this is Python’s note for beginners.” a = “note” in text b = “Python” not in text print(a) #回傳True print(b) #回傳False
字串串聯
在EP. 2 的時候,有提到 + 可以用來串聯字串,且字串與數字間不能串聯,但我們可以透過 format( ) 來達到此目的,這個函數是用傳遞參數的形式,可以設定它們的格式與位置,而且可以放置無限個參數到佔位符{ }中。
為了確保參數放置正確,可使用索引號明確定義參數位置。
month = 3 text = “ My name is Teresa, and I have been learning Python for { } months.” print(text.format(month))
轉義字元
當字串文字包含雙引號或單引號時可使用轉義字元:反斜槓( \ ),後面直接加入字元。
#以下是錯誤的程式碼 text = “ We are learning “ Python”.” print(text) #因為雙引號必須成對,因此程式碼會被判定斷在"We are learning “
#正確的程式碼如下: text = “ We are learning \“ Python\”.” print(text)
Python中還有其他轉義字元,請參考:https://www.w3schools.com/python/python_strings.asp
布林值
在程式語言中,布林值表示 True 或是 False
輸入表示式,Python可回傳 bool 值或依照 bool 值做相對應的指令,因此自己可以建立返回布林值的函數或是根據布林值的答案執行程式
#比較兩個值 print( 1 > 0) # True print( 1 == 0) # False print( 1 < 0) # False
#判斷條件式 a = 520 b = 37 if b > a: print("b is greater than a") else: print("b is not greater than a") #b is not greater than a,因為b > a的 bool值為False所以執行else的語句
#評估變數和值 a = “Python” print(bool(“Teresa”)) # True print(bool(37)) # True print(a) # True
我們可以發現大多數的值的bool值都是True,那什麼時候會出現 False呢?有以下幾種情況:
- bool(False)
- bool(none) #none = 空值
- bool(0) #數字為0時
- bool(” “) #字串為空時
- bool(( )) #列表為空時
- bool([ ]) #元組為空時
- bool({ }) #字典為空時
運算子
運算子可以對變數和值進行操作,可區分為以下幾種類別:
算術運算子
算術運算符可以運用在數值上以執行常見的數學運算
符號 | 功能 | 範例 |
+ | Addition(加) | 1 + 2 # 3 |
– | Subtraction(減) | 1 – 2 # -1 |
* | Multiplication(乘) | 1 * 2 # 2 |
/ | Division(除) | 12 / 3 # 4.0 |
% | Modulus(求餘) | 11 / 2 # 1 |
** | Exponentiation(冪次方) | 2 ** 5 # 32 |
// | Floor division (忽略小數點後的數字) | 11 // 2 # 5 |
分配運算子
符號 | 範例 | 等同於 |
= | x = 1 | x = 1 |
+= | x += 2 | x = x + 2 |
-= | x -= 3 | x = x – 3 |
*= | x *= 5 | x = x * 5 |
/= | x /= 6 | x = x / 6 |
%= | x %= 7 | x = x % 7 |
//= | x //= 8 | x = x // 8 |
**= | x **= 9 | x = x ** 9 |
比較運算子
比較運算子用於比較兩個值,可回傳布林值或是依據布林值做相對應的指令
符號 | 名稱 | 範例 |
== | 等於 | a == b |
!= | 不等於 | a != b |
> | 大於 | a > b |
< | 小於 | a < b |
>= | 大於”或”等於 | a >= b |
<= | 小於”或”等於 | a <= b |
邏輯運算子
邏輯運算子用於組合條件語句,並回傳對應的布林值,或依據布林值執行相對應的指令
符號 | 範例 | 判斷 |
and | 1 < 2 and 1 > 0 | 兩者皆真才為真 |
or | 1 > 2 or 1 > 0 | 其中一真便為真 |
not | not( 3 < 5 and 3 < 10) | 真回傳假,假回傳真 |
識別運算子
識別兩個物件是否具有相同的記憶體位置
符號 | 判斷 |
is | 兩者同物件時為真 |
is not | 兩者非同物件時為真 |
x = [ “apple”, “banana”] y = [ “apple”, “banana”] z = x print( x is y) # False,因兩物件綁定的記憶體位置不同 print( x is not z) # False,因兩物件綁定的記憶體位置相同
成員資格運算子
符號 | 判斷 |
in | 當特定的值在序列中回傳真 |
not in | 當特定的值不在序列中回傳真 |
x = [ “apple”, “banana”] print(“apple” in x) #True print(“cherry” not in x) #True
EP. 3就到這裡告一個段落了~感謝大家閱讀,歡迎大家留言和我互動,分享心得,我們下次見~下集討論Python的條件、迴圈和函數的部分,敬請期待!
Python初學總整理 全系列:
Python初學總整理 第3講:Python資料型態和運算子 (本篇)
Python初學總整理 第4講:Python條件、迴圈與函數
Python初學總整理 第7講:爬蟲實例解析 – 以爬取臉書社團為案例,使用 Selenium 來進行網頁模擬爬蟲
文章看完還是不知道該從哪裡下手?
就從線上課程開始吧!不讓你獨自摸索好幾個月,用8小時帶你走完基礎與精華,培養你基礎的Python概念,讓自學下一步不是煩惱!
全新Python 課程上架,8小時基礎實戰!,限時優惠只要NT 600 (HDK 120 起)!
不讓妳浪費一整天,只要你8小時,就能讓你學會基礎!
如果你的入門還在單打獨鬥,歡迎來到快樂學程式找到志同道合的夥伴,你的自學之路不孤單。
參考資料: