Python 必備基礎— Variable and Data Type變數宣告與資料型別

Sean Yeh
Python Everywhere -from Beginner to Advanced
9 min readJun 30, 2021
Minato ku, Tokyo, Japan, photo by Sean Yeh

何謂變數

變數,就程式撰寫來說,是很基本的一個概念。你可以用以前數學課上面學過的代數X、Y、Z來理解。(例如:Y=X+1,把數字帶入X就可以得到Y的值)在實體世界來說,我們不大會使用到這個概念,不過,我們還是盡可能的以實際世界上的物品來比喻。

收納箱內的物品

開始解釋什麼是變數前,我想請大家想像一下家中的收納箱。想像你有一個收納箱,你拿起一隻筆在標籤紙上寫下「一號箱」三個字,並將它貼在收納箱上面。接下來,把一本讀過的小說(譬如說「飢餓遊戲」)丟進這個收納箱內,並將箱子用膠帶封裝起來。

從此以後,每當你想要找出那本讀過的「飢餓遊戲」,只要找到「一號箱」打開,就可以取出那本舊小說。

再想像一下,假如你將箱子打開,移走那本「飢餓遊戲」,並且將一個聖誕節收到的禮物馬克杯一只,放入「一號箱」裡面,然後與之前一樣將箱子封起來。此後,每當你想要找出那只馬克杯,只要找到「一號箱」打開,就可以取出那杯子;每當尋找到「一號箱」,就會找到那個馬克杯。

「變數」就像家裡的收納箱一樣,是儲存資料的箱子。當程式設計者使用一個變數的時候,應用程式就會配置一塊記憶體給這個變數使用。並且以變數名稱做為辨識此記憶體區塊的標誌。

變數類似Excel的儲存格

我們在從實體世界回到數位的範圍,前面提到「變數像是儲存資料的箱子」。如果你曾經使用過Microsoft Excel試算表,就可以理解。

平時,我們在使用Microsoft Excel試算表時會將數值輸入到儲存格裡面。例如,我們在A2儲存格欄位中輸入定價『100』,並且在B2儲存格欄位中輸入公式『=A2*80%』。這裡的A2儲存格,就像是儲存資料的箱子一樣,儲存了『100』這個數值。

任何程式都會使用變數。變數可用來儲存資料,我們可以將重要的資料存在變數中以供給日後使用。

當變數有變動需要時也比較好變更,只要改變變數的值,就可以改變整個程式運作的結果,可以讓程式碼更為簡潔有組織,更為容易維護。

宣告變數

使用變數需要經過宣告,你可以透過下面的方式使用變數:

name = value

其中,name 是「變數名稱」 = value是「變數值」。值得注意的是:

「=」符號不是數學上的等於

我們從小認知的等號「=」,在這裏(程式的世界)不是指數學上的相等,而是『指派(assign)』的意思,也就是將等號右邊的值「指派」給左邊的名稱。因此「=」被稱為指派算符 (assign operator)

舉例來說:

X = 5

上面的式子表示建立一個以X為名稱的變數,並且指定5為此變數的值。因此,當我們看到「=」符號時,就要先去計算右邊的式子,然後把結果放在左邊的變數裡面。

以前所學的數學運算「等於」符號,在程式裡面要寫成兩個「==」或三個「===」連續等號。這對初學者來說,非常容易搞錯,要特別注意。

Python中的變數

前面我們在解釋變數時,提到變數可用來「儲存」資料。實際上,在Python裡面,不論是字串、數字等等,所有的東西都是物件,與其說變數是儲存資料,變數更像是個「便利貼」標籤(不過大家似乎還是習慣使用箱子或儲存格的方式來說明變數的概念),當你使用『=』符號指派一個變數時,其實是將該變數名稱指向那個值。例如前面提到的X = 5 ,就像是將寫有變數X的便利貼,『貼』在5這個物件上面一樣。

print函式可以確認變數的內容

使用print()可以用來觀察變數的結果。在括弧中置入變數名稱,並且執行print,可以在螢幕中顯示變數的值。我們可以透過這個方式來觀察變數目前的值為何。

print(變數)

舉例來說,在Python Shell或IDEL裡面輸入下面的程式碼:

X = 5print(X)

結果會在螢幕中顯示變數X的值。

更新變數值

當我們賦予一個變數值之後,同樣可以使用『=』符號來賦予新的值。

X = 5print(X)
X = 10print(X)
X = X + 2print(X)

結果在螢幕中顯示:

每當我們重新賦予一個新的值,就產生不同結果。

猜猜看下面程式碼執行的結果為何?

a = 1a = 3a = 5print(a + a + a)

由於Python在執行程式時,是由上而下逐一執行的緣故,在前面行數宣告的變數a會被後面行數宣告的同名變數改變其值。就這個例子來說,變數的值不斷地被改變,直到第三行(a =5 )時才停止,所以第四行列印出來的值就是 5 + 5 + 5 的結果,也就是15。

變數的命名規則

變數在命名時必須遵守一定的命名規則,大致上來說有下面的限制:

  • 不可以用數字開頭,變數名稱的第一個字母必須是大小寫英文字母 。
  • 變數名稱不能與Python保留字或函式名稱相同。

下面列出Python保留字

Python保留字

保留字如print、def、if、else、for 等等,原本就是在Python中會被使用到的,不能被拿來作為變數的名稱,在命名時一定要注意,不要要踩到紅線了。

除以上的限制之外,你可以使用字母大小寫、數字、底線( _ ) 來進行變數的命名。另外,英文字母大小寫不同,視為不同變數名稱。舉例來說,如果要命名為output時,可以使用outputNumber或者是output_number來命名。

資料型別(data type)

程式有各式各樣的資料型態,如果將各種資料依照不同的型態加以分類的話,不同的資料型態給予不同的記憶體配置,可以提高運作的效率。Python 中不同的資料有自己的資料型別(data type),不同的資料型別可以做不一樣的事。

Python的基本型別有下面幾種:

  • 數值型別: int (數值)、float(浮點)
  • 邏輯(布林)型別:bool
  • 字串型別:str

以下簡單介紹Python變數的資料型態。

數值型別

Python 的數值資料型態有整數(int)與浮點(float)。

簡單說,1、2、3等數字就是數值型別,浮點是指帶有小數的數值。例如:整數表示為 num = 5、浮點表示為 num = 2.5

我們可以對數值型別的資料間進行加減乘除等運算。

邏輯(布林)型別

Python 的布林資料型態只有兩個值:True 與 False。當結果為「真」的時候,以True來表示;反之,則以False來表示。需要注意的是,布林資料型別的『True』 與『 False』,其第一個字母皆為大寫。奇表示方式如:isFavorite = True

字串型別

字串就是將整串資料當作文字處理的意思。Python 的字串資料型態為(str)。只要在一段文字內容前後以一對雙引號(”)、或一對單引號( ’)包起來的部分,便能夠被當作字串形態的資料來處理。

例如:

name = “John”

另外,如果連續輸入三個單引號(’’’)或連續輸入三個雙引號(”””),就可以在中間放入多行的字串。

例如:

aboutMe = """我的名字是John我喜歡唱歌跳舞我喜歡python"""

執行後,螢幕顯示的結果:

使用變數的時候,不用特別指定資料型別,因為Python 會根據「變數值」來設定資料型別。

若想在程式中確認變數或者是某個值倒底是屬於何種資料型別,可以使用type()函式來暸解變數目前的資料型態。

type(變數名稱或值)

例如:上面 X=5 的變數X是哪個形態的話,可以用 type(x)來得知。

資料型別轉換

為變數設定正確的資料型態很重要。前面提到,由於Python 會根據「變數值」設定資料型別,一般在使用變數的時候,不用特別指定資料型態。

然而,由Python自行判斷的結果可能不是每一次都盡如人意、剛好是我們所希望的資料型別。

例如:我們希望『10』這個值的資料型態是字串(str)而Python卻自動判斷為是數值(int),這時如果沒有校正為正確的資料型別,就可能發生意想不到的計算錯誤。因此,為確保資料型別是我們確實所希望的型別,就必須進行資料的轉換。

我們可以透過 int() 、float() 或 str() 進行強制資料型態的轉換。

  • int(值) :強制轉換為整數資料型態。
  • float(值):強制轉換為浮點資料型態。
  • str(值) :強制轉換為字串資料型態。

以 str()強制轉換為字串資料型態為例說明:

在使用print印出字串時,如果將字串與數值組合在一起,便會發生錯誤。

age = 20print("小花的年齡為" + age +"歲")

上面的程式碼執行後的結果,會顯示TypeError(紅字部分):

這時候要解決這個問題,需要將數值資料轉換成字串後再組合。

age = 20print("小花的年齡為" + str(age) +"歲")

上面的程式碼執行結果正常,不會顯示錯誤訊息:

--

--

Python Everywhere -from Beginner to Advanced
Python Everywhere -from Beginner to Advanced

Published in Python Everywhere -from Beginner to Advanced

This place is All about Python. From Beginner to Advanced programing, by using Python, you can do anything you imagine.

Sean Yeh
Sean Yeh

Written by Sean Yeh

# Taipei, Internet Digital Advertising,透過寫作讓我們回想過去、理解現在並思考未來。並樂於分享,這才是最大贏家。

No responses yet