蔡華誠的學習歷程檔案 - 111-1 人工智慧 - 0. Python 入門
 


歷程檔案 Portfolio

    0. Python 入門

    開始跟 Python 培養感情之前,首先我們必須先稍微瞭解一下它。當我們說「Python」時,其實可能代表一個「語言」,或者一個「使用 Python 這個語言的平台」。

    這是什麼意思?嗯,想想你的手機好了。現在的智慧型手機都有語音助理軟體,例如 iPhone 有 Siri,Android 也有 Google Now。Python 也是類似這樣的東西。
    當我們想讓 Python 做事情時,就必須向它下指令。Python 不像 Siri、Google Now 等等使用我們平常講的語言,而是使用特殊的語法。這個特別的語法也叫做 Python——它就是我們將要學習的程式語言。

    Python Shell

    我們通常會使用終端機來和 Python 溝通。方法有兩種:

    1. 我們可以一次要求 Python 執行一個指令。這和 Siri 與 Google Now 有點像:我們要求 Python 做一件事情,然後 Python 就會告訴我們這件事情的結果(或者也可以叫他做就對了,不要回答)。我們通常把這種作法叫做「互動模式」。
    2. 如果我們很清楚想讓 Python 做什麼事,就可以把所有想做的事情寫在一個檔案裡面,然後告訴 Python 去做那個檔案裡寫的事情。這樣我們就不需要一直盯著電腦,讓 Python 一個口令一個動作,只要把想做的事情寫下來,其他就一切交給 Python。

    我們在做網站時,通常會用方法 2——我們總不能一直盯著電腦,等著別人連上我們的網站,再告訴 Python 該怎麼辦吧!但是在這篇文章裡面,我們會使用方法 1 練習語法。別擔心,我們在最後面還是會用用看方法 2,感受一下它們之間的差異。

    進入互動模式的方法,是打開終端機,輸入下面的指令:
    按下 Enter 鍵後,應該會看到類似下面的內容
    這代表 Python 已經啟動,進入了 Python shell。當我們要使用互動模式時,都必須在這個 Python shell 中進行。最後一行的 >>> 代表它已經準備接受你的下一個命令。
    在任何時候,只要你看到 >>> 符號,就可以輸入 exit() 並按 Enter,以退出 Python shell,回到原本的提示列。接著只要再輸入
    就會重新回到 Python shell。不過要注意,Python 不會自動幫你記住之前的資料,所以如果你退出 Python shell,之前輸入過的東西就全部會消失,必須重新輸入!(我們之後會教你怎麼把資料存到不會消失的地方。)

    第一個 Python 指令

    我們來讓 Python 執行幾個指令看看。試著輸入 2 + 3,然後按 Enter。你會看到下面的結果:
    這就是 Python 互動模式的標準流程。你問 Python 一個問題,然後它回答你。

    Python 畢竟是電腦程式,這種計算當然難不倒它。試試看一些更複雜的計算吧!下面是幾個例子:

    • 4 * 5
    • 40 / (7 - 3) * 2
    • 2 ** 3

    它們各代表什麼意思?多試幾個數字,看看你能不能自己找到答案。

    解答: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 開始!

    思考一下:試著在方括弧裡放一些其他數字,例如 67100-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 指向的值,可以使用這個語法:
     

    全部共 0則留言
    登入帳號密碼代表遵守學術網路規範


    文章分類 Labels


    最新文章 Top10

    中華科技大學數位化學習歷程 - 意見反應