開始跟 Python 培養感情之前,首先我們必須先稍微瞭解一下它。當我們說「Python」時,其實可能代表一個「語言」,或者一個「使用 Python 這個語言的平台」。
這是什麼意思?嗯,想想你的手機好了。現在的智慧型手機都有語音助理軟體,例如 iPhone 有 Siri,Android 也有 Google Now。Python 也是類似這樣的東西。
當我們想讓 Python 做事情時,就必須向它下指令。Python 不像 Siri、Google Now 等等使用我們平常講的語言,而是使用特殊的語法。這個特別的語法也叫做 Python——它就是我們將要學習的程式語言。
我們在做網站時,通常會用方法 2——我們總不能一直盯著電腦,等著別人連上我們的網站,再告訴 Python 該怎麼辦吧!但是在這篇文章裡面,我們會使用方法 1 練習語法。別擔心,我們在最後面還是會用用看方法 2,感受一下它們之間的差異。
解答:Python 除了加減乘除外,還懂得一些比較不常見的計算符號。例如 **
代表「次方」,所以 2 ** 3
就是「2 的 3 次方」,也就是 2 * 2 * 2 = 8
。
字串(Strings)
除了數字之外,Python 也可以處理文字,試著輸入你的名字:
我們把這樣的一段文字叫做「字串」。在 Python 中,字串必須用單引號('
)或是雙引號("
)包起來。因為按 Enter 在 Python 中代表「執行這個指令」,所以字串中不能用 Enter。
思考一下:如果我們想在字串裡換行,又該怎麼辦?Python 提供了兩種方法。第一種叫做「跳脫字元」,Python 在遇到某些特定的字元組合時,會把它辨認成其他的意思,例如「換行」就可以寫成 \n
(注意斜線的方向,不要寫成 /n
)。另一種方法是使用「多行字串」,用三個單或雙引號把字串包起來。不過這些就是比較進階的語法,詳細可以參考官方文件對字串的說明。
我們可以用 +
把兩個字串連在一起。試試看:
也可以用乘號(*
)來重複一個字串:
或者更厲害的:
你也可以問 Python 字串中有幾個字:
噢,等等,這是什麼?上面這段程式,其實就等於問 Python「'I am a Django Girl'
的長度(length,簡寫 len
)是多少」。我們在使用 Python 時,有很多常常想問它的問題。為了方便我們使用,Python 為這些問題建立了一些捷徑,叫做「函式」。當我們使用函式時,會使用這樣的語法:
在這裡,我們想問的事情是長度(len
),受詞是 'I am a Django Girl'
,所以就寫成
Python 內建了很多很多的函式可以讓我們使用。我們在後面會慢慢介紹。
錯誤處理
既然 len
是用來詢問長度,那麼能不能告訴我們數字有幾位數?
好像沒有得到答案,而且 Python 還給了我們一些沒看過的訊息。
恭喜你看到了第一個 Python 錯誤!這個錯誤告訴我們(最後一行冒號 :
後面的內容)整數(integer,簡寫 int
)沒有長度。Python 不知道該怎麼回答,只好告訴我們錯誤訊息,請我們修改問題。
思考一下:可是 304023
不是很明顯六位數嗎,為什麼 Python 不懂?回想以前的數學課(啊啊啊啊我知道這回憶不太愉快,對不起),數字有「進位」的概念,例如「十進位」的 5
和「二進位」的 101
其實是同樣的數值,但寫出來會不一樣。Python 不能亂假設你想用哪一種進位法,所以就放棄了。
好吧,那怎麼辦?把數字轉換成字串就沒問題了!
我們在 len
函式當中,使用了 str
函式,str()
可以把東西轉換成字串;這下 len
函式就知道該怎麼做了。
str
函式把東西轉成字串。int
函式把東西轉成整數。
小提醒:我們可以把任何數字轉成文字,但不是所有文字都能轉成數字。想想看,如果我們輸入 int('hello')
,會發生什麼事?實際試試看,驗證你的猜測對不對。
變數(Variables)
有時候,我們會想在很多地方使用同一個東西。但我們要怎麼告訴 Python,我們想要什麼東西?
為了讓彼此知道互相在講什麼東西,我們需要為這些東西取名字。這些名字就叫做變數。在 Python 中,是用等號 =
來創造變數。像這樣:
這個變數叫做 pet
,內容則是一個字串 'Kitty'
。Python 會為這個 'Kitty'
物件建立一個標籤:
和之前不同,在建立變數時,Python 不會告訴我們任何事情,只會默默建立。
但這樣怎麼知道有沒有建立成功?我們可以問 Python,看它現在知不知道 pet
代表什麼:
既然是「變」數,代表我們可以改變它的內容:
而且因為變數就代表那個東西本身,我們也可以把它傳到函式裡面:
或者用來做運算。甚至運算的結果也可以成為變數。
但如果我們問了 Python 不認得的變數名稱,會怎麼樣呢?
喔,又是一個錯誤!根據你做錯的事情不同,Python 會按照狀況回應各式各樣的錯誤。稍早我們看過 TypeError
,這裡則是一個 NameError
,代表我們用了錯誤的變數名稱。以後如果看到這個錯誤,記得檢查一下有沒有拼錯字!
串列(Lists)
Python 本身就有不少內建的物件類型。前面提過了數字和字串,但我們再多看幾個常用的。首先是 list
:顧名思義,它是一個東西的列表。
這樣就可以建立一個串列:
對,它是空的。好像沒什麼用!我們來建立上一期威力彩的開獎號碼好了:
這樣就有一個 list
變數了!和字串一樣,我們也可以查看它的長度:
如果想把 list
裡面的東西取出來,則可以使用方括弧語法,告訴串列我們想要其中第幾個元件。在電腦世界裡,我們喜歡從 0 開始數,所以最前面的元素會是第 0 個:
我們還可以從後面數回來:
小提醒:因為 -0
和 0
相等,所以從後面數的時候必須從 -1
開始!
思考一下:試著在方括弧裡放一些其他數字,例如 6
, 7
, 100
, -10
等等。試著找出其中的規則,解釋它們的結果。注意有些數字會產生錯誤喔!
串列與前面提到的數字、字串等等有個差異:它可以被修改。舉例而言,如果我們想要把前面號碼中的 12(第 1 個值)改成 22,則可以這樣寫:
我們再看一次裡面的內容:
>>> lottery [4, 22, 13, 15, 23, 38] >>> lottery[1] 22
確實改變了!
字典(Dictionaries,簡稱 dict
)
字典和串列很像,只不過它是用來儲存東西之間對應關係,就像——呃,字典,裡面可以存放很多「單字」與「解釋」之間的對應。空字典長這個樣子:
我們來用一個字典紀錄你的個人資訊。像下面這樣(記得把資料換成你自己的!):
字典裡面,會包含多個鍵(key)與值(value)的組合。在這個例子裡,我們在 my_information
這個 dict
裡建立了三個項目:
name
鍵對應到 'Pusheen the Cat'
值(是個字串),country
指向 'USA'
(也是字串),favorite_numbers
鍵則指向 [42, 105]
(一個 list
,其中有兩個數字)。
如果想檢查 dict
中某一個 key 指向的值,可以使用這個語法: