萬物終有歸屬 - 變數¶
我們對於日常生活中的事物,都會給予名字,我們並不會說
把這個和那個東西拿過來
因為這樣很難確定這個和那個指的到底是什麼東西,因此明確的名稱是需要的,在電腦中的世界也是如此,例如你有兩台印表機,當你向電腦說
請把這份文件於印表機印出
對於電腦來說,這份文件指的是哪一份? 而印表機指的又是哪一台? 如果換成
請把文件1234.doc印到列表機一號
如此一來就相當明確,電腦能接受的只有明確的語言,因此名稱是必需的。
而電腦是一種可以進行運算的裝置,理所當然的需要儲存一些資料,就像我們在紙上做計算時,需要一些地方記下運算過程中的數字,而這就是所謂的變數,我們來看一個簡單的例子
num = 5566
num在此就是一個變數,而這個變數指向的是5566這個數字,用圖來表示
此後我們就可以用num這個名稱來取代5566,例如原本程式是這樣寫
print "I love", 5566
可以改寫成
num = 5566
print "I love", num
如此一來,如果哪一天你不喜歡5566這個數字,你喜歡7788,那麼你只要改寫成
num = 7788
print "I love", num
有沒有發現我們的print那一行的程式沒有改變,只改變了num,因為我們只要設定好了num的名稱,之後num名稱所放之處就代表了它所指派的東西,這就是變數帶來的彈性,接著我們就更詳細地介紹變數
變數¶
變數之所以為變數,正是因為它可以改變的特性,同樣的名稱我們可以讓它代表不同的東西,而指定一個變數要代表什麼,我們稱之為 「指派」,也就是我們先前看到的 「=」 等號的形式,它的語法如下
變數名稱 = 代表的對象
值得注意的是,這看起來很像數學的等式,很多人可能一開始會直覺地認為,這是 「左右相等」 的意思,但是在Python語言裡,或是常見的程式語言中,這都叫做 「指派」,是設定變數代表對象的語法,和數學裡的等式是兩回事
就像我們先前提到的,變數是可以改變的,因此當你一開始指派了變數的代表對象之後,還可以再次改變它,我們來看一個簡單的例子
num = 7788
print "I love", num
num = 5566
print "I hate", num
執行結果會是
I love 7788
I hate 5566
用圖來表示的話
如我們這個例子所看到的,num這個變數一開始設定為7788,接著重新設為5566,這顯示了變數可以一直被改變的特性,而新手常犯的錯誤之一,就是弄不清楚執行的順序,舉個例子
print num
num = 1234
你會得到一個錯誤的訊息
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'num' is not defined
這是什麼意思呢? 意思是Python不認識num,那你會說,我明明有指派,為什麼會不認識? 原因出在於程式的執行是由上而下的,也就是說將1234指派給num是在print下一行才發生的事,這就好像你搭時光機回到二十年前問路人Lady Ga Ga是誰一樣,沒有人認識她,因此請記得一個重點就是,程式是由上往下執行的
變數名稱¶
Python的變數名稱可以有大小寫英文字母、數字還有底線,例如
student_number
CreditCardNumber
__str__
__var
_var
這些都是合法的命名,以下示範一些非法的命名
student-number
$user_name
@my_var
一個很重要值得注意的地方是,Python的大小寫變數名稱是有差異的,例如
StudentNumber
studentNumber
studentnumber
會被視為三種不一樣的變數,我們舉個例子
num = 1
Num = 2
nUm = 3
print num, Num, nUm
輸出的結果會是
1 2 3