給自學者的Python教學(4):變數篇ep1

YC
6 min readOct 23, 2017

--

來來來,告訴你們一個的祕聞!其實……X先生他是男人👤來的!那Y小姐呢?她哦…是女人💅。
對!變數就像是八掛雜誌中的X先生跟Y小姐。X先生跟Y小姐到底是誰?當然是任你代入囉!

X=柯P?可以!Y=小英?也可以!

在數學中,我們也有假設變數這方法,如假設X=7,Y=3,Z=X+Y,那Z是多少?(如果你不知道Z是多少,你的體育老師真的會很傷心😭)

同樣地,在Python這些程式語言中,它們允許你宣告(設定)變數(Variable)。變數就是為了方便在程式中調用記憶體中的值而改的名字。

等等!什麼是宣告?什麼是記憶體中的值?

宣告是一個動詞(verb.),當我們說要宣告一個變數時,其實就是告知電腦說,我現在要創造一個東西,這個東西是用來儲存某些數據類型的數據。就如你現在到超市買一個保鮮盒,並為盒子貼上一個標籤--「食物盒」,那你會希望在盒子裡裝的是什麼?當然是食物呀🥑🍈🥐🥔!

那在Python中要如何宣告變數?
很簡單,就像如下的範例1:

>>>a = 7
>>>print(a)
7

首先來每一行的解釋一下。
1. 我們先將整數7賦予如宣告的變數 a。
2. 打印a的值。
3. 結果顯示為7。

範例2:

>>>b = True
>>>print(b)
True
>>>c = “I am so handsome.”
>>>print(c)
I am so handsome.
>>>d= 3.14159
>>>print(d)
3.14159

就如範例1一樣,我們將不同的值(亦是不同的數據類型)賦予給各變數,然後打印出來,結果就會是等於變數中的值。

不知道大家在上述的範例中有沒有發現到Python的某種特性?

Python是不需要事先宣告變數的類型就可以直接賦值!

Python可是很聰明的!

在a=7中,7是整數,而a是一個我們創建出來的變數名稱。當我們把7賦值給a時,Python會很聰明地自動判斷你賦予的值的類型,並給變數也標籤上同樣的數據類型。
那你現在應該就可以想到b、c、d變數的類型分別就是:布林、字串與浮點數。

在這邊,我們需要先對一個重要的概念有所了解。🤓

在數學課當中,我們都學過 “=” 代表 “等於” 這個意思,但是在程式設計當中,“=” 代表的卻是 “賦值” 的意思。在範例 “a = 7”,我們 應該是從右邊開始讀起,即 “7” 這個整數賦予給 “a” 這個變數。

如範例3:
>>>a = 3
>>>b = a
>>>print(b)
3

我們可以對上面的程式解讀為:
1. 將3賦值給a。
2. 將a賦值給b。
3. 印出b
4. 結果為3。

既然我們了解宣告和賦值,那現在我們就可以來解決「什麼是記憶體中的值」這個問題了。

當我們寫 “a = 3” 時,我們就是把資料(值)儲存到a當中,可是a只是我們取的一個名稱,它還是需要在電腦的物理上存儲著,才可以在程式運行時被電腦調用。那真正的資料又是儲存到哪邊?

記憶體。

當程式運行時,程式會被載入到記憶體(ram)中,再透過操作系統來進行指令的執行與調用(極簡化說明🤗)。在這時侯,變數(“a”)會被載入到記憶體當中,當程式用到變數的值時(“3”),在記憶體中的值就可以被使用。

會不會有點難懂?簡單來說是,當你要看Netflix時,你會把一些想看的影集(變數的值)放到Mylist當中(記憶體),當想要看影集時(執行程式),你只要到Mylist中找之前儲下來的影集(在記憶體中調用變數)就可以播放了。

同樣地,我們可以透過宣告變數來使程式設計變得更方便與強大。
如範例4:

>>>num1 = 5
>>>num2 = 1
>>>a = num1 + num2
>>>b = num1 - num2
>>>c = num1 * num2
>>>print(a)
6
>>>print(b)
4
>>>print(c)
5

在範例4中,我們先把
1. 5 儲存到num1變數,1 儲存到num2變數。
2. 再把 num1 與 num2分別加減乘,並儲存到 a,b,c當中。
3.印出a,b,c。

這裡的重點在於,變數是可以運算與重複使用。在之後,我們透過不同的運算符與其他規則,就可以更良好地運用變數來設計一個靈活可變的程式。

那如果只改了一個變數名稱,但沒有賦予其任何的值呢?

>>> c
Traceback (most recent call last):
File “<pyshell#13>”, line 1, in <module>
c
NameError: name ‘c’ is not defined

Python就會彈出來告訴你錯了錯了,變數名稱 “c” 未被定義。因為這個名稱沒有被賦予值,所以是無法被調用的。就像是你要去買東西卻發現…

圖片來源:GIPHY

這當然,東西也是買不到啦。。。

最後,我們來介紹一下該如何命名變數

變數名稱只能包括以下字元:

1.小寫字母(a~z)
2.大寫字母(A~Z)
3.數字(0~9)
4.底線(_)

另外,變數名稱是不能以數字為開首,如「92s」。
以下是一些合法的命名:

1.a
2.a_b
3.a32
4._fe1

最後我們要注意有一些名字是保留給Python使用的,不可用作變數名稱:

Python 保留字

如果你覺得我的文章幫助到你,希望你也可以化讚為賞,加入 Liker ,再按下方的綠色拍手按鈕,為文章點讚!為作者增加收益,再回饋更多好文章!

--

--

YC

提供更精確的技術內容為目標,另創立「程式愛好者」專頁。資深軟體工程師,專研後端技術、物件導向、軟體架構。