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基礎 — 字串、數字與變數的內容,希望大家在程式的路上越戰越勇!
如果你喜歡我的文章,請給我一點掌聲~~
作者:戴若竹 (臺灣行銷研究特邀作者)、鍾皓軒(臺灣行銷研究有限公司創辦人)