Python 入門最前線 - 一次搞懂字串、數字與變數
(附 Python 程式碼)
學習程式語言時,常常忽略了基礎的重要性,本篇文章將會用最簡單的方式,一次帶領讀者搞懂 Python 的字串、數字與變數。因為這是資料科學從業人員在數據分析時,時刻都會面臨的基礎資料類型問題。以下就開始跟大家介紹 Python 中,字串、數字與變數的基本運用,帶領讀者們實際進入編程的世界。
一、字串
字串 (string),可以理解為一整串的文字或字元。在 Python 裡,要創建一個字串,可以使用單引號「’」或雙引號「”」將文字內容包起來,如程式碼 1 所示。
程式碼 1:
'hello world!'"hello world!"
產出:
'hello world!''hello world!'
這邊可以注意到,無論是單引號或是雙引號的 hello world,其產出均為單引號的 hello world。那為什麼我們需要單引號及雙引號來表示字串呢?透過這樣的設置,我們可以簡單使用單、雙引號來表示出包含單、雙引號的字串,而不需要額外的程式碼。
此外,程式碼 1 並不屬於合格的指令,我們可以利用 print() 及 type() 內建函式,來列印文字及檢查型別,如程式碼 2 所示。
程式碼 2:
print("'Welcome to Python.'")print(type("'Welcome to Python.'"))print("'Welcome to Python."')print(type("'Welcome to Python."'))
產出:
'Welcome to Python.'<class 'str'>"Welcome to Python."<class 'str'>
函式 print() 會產生更易閱讀的產出,它會去除掉包圍的引號,並且直接印出被跳脫 (Escape) 的字元和特殊字元。跳脫字元為少數在 Python 等程式語言中有另外定義的字元,在字元前加上「\」可以跳脫這些定義,以一般的字串處理,常見的跳脫字元有:「\」、「’」、「”」。而如果不想使用「\」跳脫,可以在字串前加上 r 前置字元來達到相同的效果,如程式碼 3 所示。
程式碼 3:
print('C:\some\name') # 這裡\n表示開始新的一行print('C:\\some\\name')print(r'C:\some\name') # r前置字元代表純路徑
產出:
C:\someameC:\some\nameC:\some\name
在 Python 裡,字串資料也支援以下幾種運算:
1. 字串相加:使用「+」串接兩個字串。
2. 重複字串:使用「*」將字串乘上某個數字代表重複幾次。
3. 取出部分內容:我們可以使用「[ ]」運運算元來取得部分字串的內容,其原因為 Python 把字串當作一串資料再處理,即一個處理資料的基本結構:串列 (List)。
4. 計算字串長度:使用 len() 函式。
程式設計範例如程式碼 4 所示。
程式碼 4:
print("Hello" + "World")print("Hi" * 3)print("Hello World"[0:7]) # 起始編號從零開始print(len("Hello World"))
產出:
HelloWorldHiHiHiHello W11
二、數字
數字 (number) 可以進行數學運算或設值,而 Python 3 支持三種不同的數值型別:
1. 整數 (int):包含零及所有正負整數。
2. 浮點數 (float):浮點數由整數部分與小數部分組成,浮點數也可以使用科學計號表示(2.5e2 = 2.5 x 102 = 250)。
3. 複數 (complex):複數由實數部分和虛數部分構成,可以用 a + bj,或者 complex(a, b) 表示,複數的實部 a 和虛部 b 都是浮點數,常用在工程計算。
在其他程式語言裡,可能會有長整數 (long) 的數值型別,但在 Python 3 裡,不管多大的數字,都只會顯示整數,已經沒有長整數的概念了。我們同樣可以使用 type() 內建函數來檢查型別,如程式碼 5 所示。
程式碼 5:
print(type(1))print(type(1.0))print(type(1+2j))print(type(complex(1,2)))
產出:
<class 'int'><class 'float'><class 'complex'><class 'complex'>
而數值型別 (number) 與字串 (string) 間可以互相轉換,使用 str() 內建函數可以將括號內的內容強制轉換成字串,使用 int()、float() 則可以將內容強制轉換成整數或浮點數,但是特別要注意的是,內容必須為可轉換的數值型式,否則會錯誤。最後,可以再使用 type() 內建函式檢查轉換後的型別,如程式碼 6 所示。
程式碼 6:
print(str(0))print(str(1.9))print(int(1.9)) # 會無條件省略小數部分print(int("0")) # int("hello")則會顯示錯誤print(float(1)) # float("hello")或float(1+2j)則會顯示錯誤print(type(str(0)))print(type(str(1.9)))print(type(int(1.9)))print(type(int("0")))print(type(float(1)))
產出:
'0''1.9'101.0<class 'str'><class 'str'><class 'int'><class 'int'><class 'float'>
在瞭解完 Python 裡的基本數值型態後,試試看把 Python 當作計算機使用吧!
基本運算式除了基本的四則運算,「+」、「-」、「*」、「/」之外,「()」用以分群、「**」做指數運算、「//」除法求商數、「%」除法求餘數,如程式碼 7 所示。
程式碼 7:
print(1+2)print(3–4)print(5*2)print(9/7)print((1+3)*(2–4))print(1+3*2–4) # 電腦會自動判斷先乘除後加減print(3**2) # 三的二次方print(5//3) # 除法求商print(5%3) # 除法求餘
產出:
3-1101.2857142857142858-83912
三、變數
變數 (Variable),就像數學方程式的 x、y、z 一樣,我們可以假設 x = 2 或 y = 3,再去做進階運算,能更方便的運用電腦記憶體。
首先,要使用變數,我們要先宣告 (Declare) 並且賦值 (Assign)。在 Python 裡,宣告相較於 C++ 簡單許多:不需要宣告變數型別 (為字串、整數或浮點數),但是必須賦值,如程式碼 8 所示。
程式碼 8:
# 在Python裡宣告一個變數a = 7
在宣告變數後,並不會有產出,但是我們可以在 Spyder 的變數檢視器 (Variable explorer) 裡看到剛剛我們設定的變數名稱與其對應的型別 (Type)、長度 (Size) 及值 (Value),如圖一所示。
這裡要特別注意的是,在數學課中,我們都學過「=」代表「等於」,但是在程式語言中,「=」代表的是「賦值」。程式碼 6 中的「a = 7」,應從右邊開始讀起,即我們將「7」這個整數賦予給「a」這個變數。當我們宣告一個變數名稱並賦值後,之後就可以使用這個名稱進行運算,或是重新賦值,如程式碼 9 所示。
程式碼 9:
# 宣告變數aa = 7print(a*3) # 進行基本運算# 重新賦值a = a*5print(a)
產出:
2135
在程式碼 9 中,我們將變數 a 重新賦值之後,變數檢視器也會隨之更新,如圖二所示。
在 Python 裡,變數名稱只能包括以下字元:
1. 大小寫字母:A ~ Z、a ~ z。
2. 數字:0 ~ 9。
3. 底線:_。
另外,變數名稱是不能以數字開頭,如「52W1」、「1Aa」。而 Python 程式語言會區分英文大小寫,因此 Hello、HEllo 和 HELLO 是三個不同的變數。以下為幾個合格的變數名稱:「customer_id」、「Customer1」、「_customer」等,大家可以自由去嘗試。
以上就是本文:Python 基礎 — 字串、數字與變數的內容,希望大家在程式的路上越戰越勇!
更多實戰案例及情境好文推薦
為什麼要用購物籃分析與協同過濾來看商務資料?
為什麼要用購物籃分析與協同過濾來看商務資料? 一般我們在進行商務資料分析時,總是會期望能透過過往所獲得的資料來發掘更多的商業洞察。一般店家在
如何評估不同產品適合的廣告方式?! 資料前處理_雙樣本t檢定技法(附Python程式碼)
如何評估不同產品適合的廣告方式?! 資料前處理_雙樣本t檢定技法(附Python程式碼) 此篇將講述何謂雙樣本t檢定,並使用該方法判斷不同產
電腦也會美食評鑑?以分群演算法尋找最高級的巧克力
電腦也會美食評鑑?以分群演算法尋找最高級的巧克力 情境 生產巧克力時,什麼產地的可可豆或是可可百分比可以為公司帶來更高的獲利呢? 巧克力