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(34)print(5*2)print(9/7)print((1+3)*(24))print(1+3*24) # 電腦會自動判斷先乘除後加減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),如圖一所示。

圖一、Spyder 內變數檢視器示意圖(程式碼8)

這裡要特別注意的是,在數學課中,我們都學過「=」代表「等於」,但是在程式語言中,「=」代表的是「賦值」。程式碼 6 中的「a = 7」,應從右邊開始讀起,即我們將「7」這個整數賦予給「a」這個變數。當我們宣告一個變數名稱並賦值後,之後就可以使用這個名稱進行運算,或是重新賦值,如程式碼 9 所示。

程式碼 9:

# 宣告變數aa = 7print(a*3) # 進行基本運算# 重新賦值a = a*5print(a)

產出:

2135

程式碼 9 中,我們將變數 a 重新賦值之後,變數檢視器也會隨之更新,如圖二所示。

圖二、Spyder 內變數檢視器示意圖(程式碼 9)

在 Python 裡,變數名稱只能包括以下字元:

1. 大小寫字母:A ~ Z、a ~ z。

2. 數字:0 ~ 9。

3. 底線:_。

另外,變數名稱是不能以數字開頭,如「52W1」、「1Aa」。而 Python 程式語言會區分英文大小寫,因此 Hello、HEllo 和 HELLO 是三個不同的變數。以下為幾個合格的變數名稱:「customer_id」、「Customer1」、「_customer」等,大家可以自由去嘗試。

以上就是本文:Python 基礎 — 字串、數字與變數的內容,希望大家在程式的路上越戰越勇!

如果你喜歡我的文章,請給我一點掌聲~~

程式碼:Python基礎 — 字串、數字與變數

作者:戴若竹 (臺灣行銷研究特邀作者)、鍾皓軒(臺灣行銷研究有限公司創辦人)

更多實戰案例及情境好文推薦

回到頂端