Python入門最前線 - 一次搞懂 字串、數字與變數(附Python程式碼)

行銷資料科學
Marketingdatascience
8 min readSep 3, 2020

學習程式語言時,常常忽略了基礎的重要性,本篇文章將會用最簡單的方式,一次帶領讀者搞懂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),如圖一所示。

圖一、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基礎 — 字串、數字與變數

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

歡迎加入我們的Telegram獲取即時訊息!https://t.me/marketingdatascience
歡迎加入我們的Line@獲取即時訊息!https://line.me/R/ti/p/%40cde8265r

--

--

行銷資料科學
Marketingdatascience

Marketing data science. 台灣第一個行銷資料科學(MDS)知識部落,本粉絲專頁在探討行銷資料科學之基礎概念、趨勢、新工具和實作,讓粉絲們瞭解資料科學的行銷運用,並開啟厚植數據分析能力之契機。粉絲專頁:https://www.facebook.com/MarketingDataScienceTMR