0% found this document useful (0 votes)
22 views30 pages

Python Beginner

本文件是 Python 新手教學,介紹了程式設計的基本概念及 Python 語言的特點。它強調寫程式需要邏輯思考和注意細節,並提供了 Python 的安裝指南和使用 IDLE 工具的說明。Python 是一種易於閱讀和撰寫的程式語言,廣泛應用於各種領域。

Uploaded by

Tsz Hei Lam
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views30 pages

Python Beginner

本文件是 Python 新手教學,介紹了程式設計的基本概念及 Python 語言的特點。它強調寫程式需要邏輯思考和注意細節,並提供了 Python 的安裝指南和使用 IDLE 工具的說明。Python 是一種易於閱讀和撰寫的程式語言,廣泛應用於各種領域。

Uploaded by

Tsz Hei Lam
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Python

12 PYTHON新手教學

什麼是「寫程式」

我們常聽到的電腦程式設計師(computer programmer)或
是「寫程式的人」(coder),都是指那些寫出指令,讓電腦
一步步執行工作的人,他們能讓電腦進行計算、製作音樂、
讓機器人在空間裡四處移動或是讓火箭飛向火星。

無聲的箱子 △ 訓練寵物
學會寫程式就能自己設計程式,讓電腦
幫我們完成想做的事。這有點像養了一
隻電子寵物後,要訓練它會一些才藝!

程式語言

說點什麼來
聽聽吧?
Python

▽ Scratch ▽ Python
Scratch 屬於圖形化程式語言,它的強項是創作遊 Python 是以文字指令為基礎的程式語言。在
戲、動畫和互動式故事。在 Scratch 的開發環境下, Python 的開發環境下,程式設計師寫程式是
寫程式就是把「積木指令」拼在一起。 用英文單字、縮寫、數字和符號,以電腦鍵
盤輸入程式指令。

when clicked 左右兩邊程式碼 >>> 3 + 3


做的事都一樣。
think 3 + 3 6

enter return

6
什麼是「寫程式」 13
人人都能寫程式

▽ 邏輯思考 ▽ 注意細節
「寫程式的人」必須具有邏輯思考能力和細心的態度,才 如果你很擅長玩「大家來找碴」這類的解謎遊戲,或
能寫出好程式。如果程式碼裡的指令不完全正確或步驟的 許能成為優秀的程式人,這是因為寫程式時,一項必
順序錯了,程式就無法運作。因此,請仔細思考每個步 備的重要技巧是找出程式碼裡的錯誤。這些錯誤通常
驟,確定它們發生的順序符合邏輯,這就像你會先穿內 稱為「臭蟲」(Bug),即使是程式碼裡十分微小的錯
褲,才穿上褲子,不是嗎? 誤也會導致嚴重的問題。眼力好的程式人能憑指令的
邏輯或順序,挑出程式碼裡的拼字錯誤或設計上的缺
失。為程式除錯是非常棘手的工作,但想提升程式能
力,從錯誤中學習是最棒的方法。
我知道……
你穿錯了!

張大眼睛留意!

知識補給站

程式裡的臭蟲(Bug)
動手寫程式
「程式裡的臭蟲」是指存在程式碼裡的錯
誤,造成程式的表現異常。之所以稱為臭蟲,
是因為早期的電腦有時會因為昆蟲跑進電路
裡而發生故障。

我在抓「臭蟲」!

英文小教室
bug hunt
14 PYTHON新手教學

認識 Python 知識補給站

Python 命名小故事
Python 是全世界最熱門的電腦程式語言之一,自 Python 的 原 意 是 一 種 蛇 ― 巨 蟒, 但
1990 年代釋出第一版以來,Python 逐漸開發出百萬 Python 語言的創始人 Guido van Rossum
選中『Python』作為程式語言的名稱其
個應用程式、遊戲和網站。
實和原意無關,真正的原因是因為他是
英 國 搞 笑 團 體「Monty Python’s Flying
Circus」的忠實粉絲,喜歡他們獨特另類
本書選擇 Python 的理由 的幽默,才以此命名。Python 程式設計
Python 師經常把這個搞笑團體的笑話和有名的
Python 語錄用在程式碼裡,以此致敬。
Python

▽ 備有電池
程式設計師說 Python 是一個「備有電池」的
程式語言,這是因為 Python 本身功能完善,
安裝之後就能立即開始進行程式設計。
容易閱讀和撰寫!

△ 容易閱讀與撰寫
Python 是以文字指令為基礎的電腦程式語言,這些
指令是由英文單字、標點符號、記號和數字所組成。
這樣的特性使得 Python 語言的程式碼更容易讓人閱
讀、撰寫和理解。
△ 便利的工具
Python 搭載了大量的便利工具和一些現成就能
使用的程式碼,我們稱為標準函式庫(Standard
Library)。有了這些便利的工具,人人都能更輕
鬆、快速地建立自己的程式。

▷ 完善的支援
△ 隨處可用 Python 提 供 了 完 善 的 說 明 文
Python 程式的可攜性高,意思是我們能在各種不同
件,引導初學者入門,包含檢
的電腦上撰寫和執行 Python 的程式碼,同樣的程式
索相關知識的參考資料和大量
碼在個人電腦、Mac 系統、Linux 環境的機器和迷你
的範例程式碼。
電腦 Raspberry Pi 上都能正常運作,不論在哪臺機器
上,程式表現的效果都一樣。
認識PYTHON 15
現實生活中的 Python 程式高手秘笈
Python 直譯器(Interpreter)
有些程式語言會利用直譯器這種程式,將一種程式設計語
言 轉 換 成 另 一 種 語 言。 每 當 我 們 執 行 Python 程 式 時,
Python 內建的直譯器就會將每一行 Python 程式碼轉換成電
腦能理解的特殊程式碼,稱為機器碼。

▽ 在網路上搜尋資訊
Python 現 已 廣 泛 地 應 用 在 網 路 上,
Google 搜尋引擎的部分程式碼就是以
我是一隻非常厲害
Python 撰 寫 而 成, 連 YouTube 也 是 使 別擔心,
的程式!
用 Python 建構大部分的程式碼。 這不會……痛!

英文小教室
Python

你說 Python 嗎?
它是一個認真工作 △ 創造醫療奇蹟
的程式! Python 能用於設計醫療機器人,執行棘手的手術工
作。以 Python 語言為架構所設計出來的手術機器人,
在執行醫療工作上不僅比人類更有效率而且更精準,
△ 嚴謹的商業工作
能避免一些人為疏失。
Python 能協助銀行追蹤每個銀行帳戶底下的
錢,幫助大型連鎖商店設定每件販售商品的
價格。

開拍! !
我們一直在
等你來!

△ 製作電影
迪士尼動畫公司利用 Python 程式,自動產生動畫製作過
△ 飛出地球 程中重複的部分。原本需要動畫師重複執行相同步驟才
軟體工程師利用 Python 語言,為美國太空總署的任務控 能繪製的內容,現在只要利用 Python 程式,就能自動執
制中心開發相關工具,幫助控制中心的工作人員進行每項 行這些步驟,省去動畫師大量的工作,大幅縮短影片製
任務的準備工作與監控每項任務的進度。 作的時間。
16 PYTHON新手教學

安裝 Python 知識補給站

Python 內建的 IDLE 工具


本書所有範例程式都是在 Python 3 的環境下完成,因 安裝 Python 的同時,還會安裝一個免
此,請檢查你從網站上下載的安裝檔案是否為正確版本。 費應用程式 ―整合開發環境工具
(Integrated Development Environment,
請配合你的電腦環境,依照指示安裝 Python。
簡稱 IDLE)。IDLE 是 Python 專為初學
者而設計的工具,包含一個基本的文
在 Windows 系統上安裝 Python 字編輯器,使用者可以利用這個編輯
Python 3 Windows 器撰寫和編輯 Python 的程式碼。

32 64 Windows

1 2
請上 Python 官方網站 下載 Python 安裝程式
在瀏覽器網址列輸入以下網址,前往 Python 在安裝程式的下載頁面裡,點擊最新版本的 Python 3
官網。以滑鼠左鍵點擊首頁的『Downloads』 安裝程式,版本號碼的開頭是 3。瀏覽器會自動下載
(下載),進入安裝程式的下載頁面。 安裝程式的檔案,請選擇適合 Windows 版本的「安
裝程式執行檔」(executable installer)。

• [Link] • Python 3.6.0a4 - 2016-08-15


• Windows x86 executable installer
• Windows x86-64 executable installer

3
執行安裝程式
雙擊安裝程式檔,開始安裝 Python。勾選畫面上的 32 Windows 64 Windows
『install for all users』(為所有使用者安裝),不要
改變安裝的預設選項,只要按『next』(下一步)。

4
開啟 IDLE
安裝完成後,請確認是否能成功開啟 IDLE 這項程式
工具。以滑鼠左鍵點擊 Windows 的「開始」功能表,
選擇『所有程式』,然後點選『IDLE』,應該會開啟
以下這樣的視窗。

Python 3.6.0a4 Shell


IDLE File Edit Shell Debug Window Help
Python 3.6.0a4 (v3.6.0a4:017cf260936b, Aug 15 2016, 00:45:10) [MSC v.1900 32
bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
安裝PYTHON 17
在 Mac 系統上安裝 Python
Mac Python 3

Mac

1 2
請上 Python 官方網站 下載 Python 安裝程式
在瀏覽器網址列輸入以下網址,前往 Python 官 在安裝程式的下載頁面裡,請配合電腦的作業
網。 以 滑 鼠 左 鍵 點 擊 首 頁 的『Downloads』( 下 系統點擊最新版本的 Python 3 安裝程式,檔案
載),進入安裝程式的下載頁面。 『[Link]』會自動下載到 Mac 電腦裡。

[Link]

• Python 3.6.0a4 - 2016-08-15


• Download macOS X 64-bit/32-bit installer

3
安裝 Python
在『下載項目』檔案夾裡找到剛剛下載的檔案『Python.
pkg』,檔案圖示看起來像是一個打開的包裹,以滑鼠左
鍵雙擊檔案就會開始安裝 Python。按下安裝提示畫面上 3
的『Continue』(繼續),使用預設的安裝選項,然後按
下『Install』(安裝)。

.pkg 重要

取得安裝軟體的許可
當你想在一臺電腦上安裝 Python 或其他程
式,請先取得電腦擁有者或管理者的同意。
在安裝程式的過程中,可能還需要請擁有

4
開啟 IDLE 者或管理者提供管理者權限的密碼。
安裝完成後,請確認是否能成功開啟 IDLE 這項工具程式。
開啟『應用程式』檔案夾下的『Python』檔案夾,使用滑
鼠左鍵雙擊『IDLE』,應該會出現以下這樣的視窗。

Python 3.6.0a4 Shell


IDLE File Edit Shell Debug Window Help
Python 3.6.0a4 (v3.6.0a4:017cf260936b, Aug 15 2016, 13:38:16)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "copyright", "credits" or "license()" for more information.
>>>
18 PYTHON新手教學

使用 IDLE 工具
英文小教室

你應該常常走出 shell
背上的殼! Shell

Python 內 建 的 IDLE 工 具 有 兩 種 工 作 視 窗。「Shell 視 窗 」


(shell window)能直接執行我們輸入的 Python 指令,「編
輯視窗」(editor window)則只能撰寫程式碼,儲存為檔案。

Shell 視窗 ▽ 在 Shell 環境下工作


Shell 程式會立即執行我們輸入的程式碼,並且
Python IDLE Shell
顯示訊息或「臭蟲」(錯誤),所以,能利用
Shell 視窗測試一小部分的程式碼,再把它們加
Shell 到更大的程式裡。

Python 3.6.0a4 Shell


IDLE File Edit Shell Debug Window Help
Python
Python 3.6.0a4 (v3.6.0a4:017cf260936b, Aug 15 2016, 13:38:16)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "copyright", "credits" or "license()" for more information.
>>>from turtle import *
>>> >>>forward(200)
>>>left(90)
>>>forward(300)
>>>

▽ 動手試試看
程式高手秘笈 請在 Shell 視窗下輸入以下這幾行程式碼,每輸入完一行就
按下『enter / return』鍵。第一行程式碼會顯示一句訊息,
以顏色表示不同的視窗 第二行會計算數學式,你知道第三行會做什麼嗎?
本書以下列兩種顏色分別表示 IDLE 工具的
兩種工作視窗,方便我們知道要在哪一個視
>>> print('I am 10 years old')
窗下輸入程式碼。

Shell 視窗 >>> 123 + 456 * 7 / 8

編輯視窗
>>> ''.join(reversed('Time to code'))
使用IDLE工具 19
編輯視窗 ▽ 開啟編輯視窗
Shell 想開啟 IDLE 工具的編輯視窗,請點
擊 Shell 視窗上方工具列中的『File』
(檔案),選擇『New File』(新增檔
案),就會出現一個空白的編輯視
窗。我們要在這個視窗下撰寫和執
行本書的範例程式。

Run

Shell

[Link]
IDLE File Edit Format Run Window Help
for counter in range(10): 我愛發呆!
if ((counter % 2) == 0):
print(counter)
print('is even')
else:
print(counter)
Python print('is odd')

Shell

程式高手秘笈

程式碼的文字顏色
IDLE 工具會自動以不同顏色顯
◁ 符號和名稱 ◁ 關鍵字
示程式碼裡各個部分的文字,
程式碼中大部分的文字都屬 Python 使用的某些特殊關鍵
文字顏色不僅能讓我們更容易 於這一類,顯示為黑色。 字會顯示為橘色,例如,條
理解程式碼的內容,還有助於 件式『if』和『else』。
發現錯誤。 ◁ 輸出結果
執行程式碼後產生的任何文
字都會顯示為藍色。

◁ 單引號中的文字
◁ 內建命令 ◁ 錯誤訊息 單引號本身和單引號包圍的
Python 內 建 命 令, 例 如, 程 式 碼 發 生 任 何 錯 誤 時, 文字都會顯示為綠色,能幫
函 式『print』 會 顯 示 為 Python 會以紅色文字顯示錯 助我們檢查是否缺少其中一
紫色。 誤訊息。 個引號。
Python
22 PYTHON新手的第一步

第一個 Python 程式 Cedric,你好!

我們在第一章已經學過怎麼安裝 Python 和 IDLE 工具,


現在要開始寫第一個 Python 程式。只要跟著以下這些簡
單的步驟,馬上就能完成簡單的程式,在畫面上顯示愉
快的訊息,向使用者打招呼。

1
執行 IDLE
程式技巧 執行 IDLE 工具後,會開啟 Shell 視窗,先暫時
不要管它,點擊工具列的『File』(檔案),選
擇『New File』(新增檔案),開啟空白編輯視
Hello, World!
窗,在這個視窗裡寫程式。

New File(新增檔案)
variable
Open(開啟舊檔)

Open Module(開啟模組)

Recent Files(最近開啟的檔案)
▷ 程式流程圖
程式設計師利用「流程圖」規劃 程式開始 Class Browser(瀏覽類別目錄)
和說明程式的運作方式。流程圖
Path Browser(瀏覽工作目錄)
裡的每個方格都是一個步驟,每
個步驟之間以箭頭連接。流程圖
裡的步驟有時會是一個需要判斷 向使用者打招呼
2
輸入第一行程式碼
答案的問題,根據結果會有多個
請在編輯視窗裡輸入以下這行文字。其中單字
箭頭指向不同的步驟。
『print』是 Python 的內建指令,負責告訴電腦
要在螢幕上顯示哪些內容,例如,範例程式裡
請使用者輸入 的文字「Hello, World!」。
自己的名字

print('Hello, World!')

在問候訊息裡加上
使用者的名字

3
Hello, World! 儲存檔案
執行程式碼之前,必須先儲存成檔案。請點擊
『File』(檔案),選擇『Save』(儲存檔案)。

程式結束 Close(關閉視窗)

Save(儲存)

Save As...(另存新檔)
第一個PYTHON程式 23

4
儲存 .py 檔
知識補給站
請在跳出的對話框裡輸入程式名稱,例如,「[Link]」,
然後按下『Save』(儲存檔案)。 .py 檔
Python 程式名稱的副檔名通常是
Save As: [Link] 『.py』,方便我們辨識哪些檔案
Tags: 是 Python 程式。因此,當我們儲
Where: Documents 存程式檔案時,Python 會自動加
上『.py』的副檔名,不用再自己
手動輸入。
Cancel Save

5
確認程式是否能正常運作
Python Shell(開啟Shell視窗) >>>
我們現在要執行剛剛寫的第一行程式
碼,看看是否能正常運作。請點擊工具 Check Module(檢查語法錯誤) Hello, World!
列 的『Run』( 執 行 ), 選 擇『Run >>>
Module』( 執 行 程 式 ),Shell 視 窗 裡 應
Run Module(執行)
該會出現一行訊息「Hello, World!」。 Shell

6
修正錯誤
程式高手秘笈
如果執行程式之後發現無法正常運作,
請先冷靜!每位程式設計師都會犯錯, 快捷鍵(Keyboard shortcut)
如果想成為專業的程式設計師,找出藏 在編輯視窗下只要按鍵盤上的『F5』鍵就能
在程式碼裡的「臭蟲」是非常重要的訓
執行程式,比用滑鼠點擊『Run』,再選擇
練。所以,請回頭再檢查一次程式碼有
『Run Module』要快得多,是非常實用的快
沒有打錯字。字串有沒有加上單引號?
『print』有沒有拼錯?修正錯誤之後再 捷鍵。
重新執行程式碼。

7
多加幾行程式碼
print('Hello, World!')
執行成功後,請回到編輯視窗,我們要多加兩行程式碼。
請看右邊的程式碼,中間那一行是問使用者叫什麼名字, person = input('What is your name?')
然後把使用者輸入的名字儲存在變數裡。最後一行是加上 print('Hello,', person)
使用者的名字,重新顯示問候訊息。你可以隨意將這裡的
問 候 訊 息 改 成 喜 歡 的 文 字, 不 管 你 想 要 有 禮 貌 還 是 變
粗魯! person

8
最後一步
Hello, World!
請 重 新 執 行 程 式 碼。 根 據 程 式 指 示 輸 入 名 字, 按 下
『enter / return』鍵後,Shell 視窗應該會顯示一行經過個 What is your name?Josh
人化的文字訊息。執行完這一步後,恭喜你,完成第一個 Hello, Josh
Python 程式!朝成為厲害程式設計師之路邁出第一步。
24 PYTHON新手的第一步

變數(Variable)
如果想寫出實際能用的程式碼,就一定會需要儲存和標記程式內的
部分資訊,這正是變數擅長的工作。變數適用的範圍非常廣泛,從
追蹤、記錄玩家在遊戲內的得分,到完成計算和儲存物品清單,變
數都是程式碼裡不可或缺的角色。

如何建立變數? △ 收納箱
變數就像貼上名字標籤的收納
箱,我們可以把想要儲存的資
料放在這個箱子裡,使用資料
時,只要用標籤上的名字就能
找出資料。

1
指定變數值
>>> age = 12
請在 Shell 視窗裡輸入右邊這行程式碼。目的
是產生一個變數 age,並且指定數值給它。
如果你不想用範例中的 12,也可以指定自己
的年齡值。

2
在螢幕上顯示變數值
>>> print(age)
請在 Shell 視窗裡輸入右邊這行程式碼,然後
按下『enter / return』鍵,就能在螢幕上看到 12
程式執行的結果。
print()
age

程式高手秘笈

變數命名
幫變數取個好名字,更容易了解我們寫的程 變數命名規則
式。例如,不要把變數取名為 lives 或 lr, • 變數名稱的開頭必須是字母。
改用有意義的名字 lives_remaining,一看 • 所有的字母和數字都能用在變數名稱裡。
就知道這個變數是記錄遊戲裡玩家還剩幾條 • 不能使用特殊的符號字元,像是 -、/、# 或 @。
命。變數名稱可以包含字母、數字和「底線」 • 不能使用「空白」(space)字元。
字元,但名稱開頭必須是字母。大家只要跟 • 可以使用「底線」(_)字元來代替「空白」字元。
著這裡所列的命名規則為變數取名字,就不 • 在 Python 裡,大小寫是不同的字母,所以「Score」和「score」
會當成兩個不同的變數。
用擔心會出錯。
• 避免使用 Python 內建命令的名稱,例如,「print」。
變數 25
知識補給站

資料型態―整數 & 浮點數


寫程式時,我們稱完整的數字為整數(integer),
帶有小數的數字則稱為浮點數(float)。程式通
常會使用整數來計算事物,浮點數則多半用在測
量事物上。
0.5

數字運算 運算符號 意義

+ 加

Python – 減
* 乘
/ 除

Python

x 6 .

1
簡單的數學運算
>>> x = 6
請在 Shell 視窗裡輸入右邊的程式碼。這幾行
程式碼利用兩個變數 x 和 y 儲存數字,並且進 >>> y = x * 7
行簡單的乘法計算。按下『enter / return』鍵 >>> print(y)
就能得到計算的答案。. 42

y x 7
y

2
修改變數值
>>> x = 10
只 要 重 新 指 定 一 個 值 給 變 數, 就 能 修 改 變 數
值。在右邊的程式碼裡,我們將變數 x 的值改 >>> print(y)
為 10,然後再顯示一次計算結果,你認為答案 42
會是什麼?

3
更新變數值
>>> x = 10
改變 x 的變數值後,必須更新變數 y 的值,才
能得到正確的計算結果。請輸入右邊這幾行程 >>> y = x * 7
式碼,現在我們已經將新的值指定給變數 y。 >>> print(y)
請記住,如果更新程式裡的某個變數值,一定 70
要檢查是否還有其他變數值也要一起更新。
26 PYTHON新手的第一步

資料型態――字串(String)
Y 0
P T H N

1
利用變數儲存字串
>>> name = 'Ally Alien'
變數也能儲存字串。請在 Shell 視窗裡輸入右
邊的程式碼,目的是把字串 'AllyAlien' 指 >>> print(name)
定給變數 name,然後將字串內容顯示在螢幕 Ally Alien
上。請注意,字串前後一定要加上單引號。
enter return

2
組合字串
>>> name = 'Ally Alien'
當我們需要將不同的字串組合成新字串時,變
數是非常好用的技巧。不僅能把兩個字串組合 >>> greeting = 'Welcome to Earth, '
在一起,還能將組合結果儲存為新變數。請動 >>> message = greeting + name
手試試看吧。 >>> print(message)
Welcome to Earth, Ally Alien
程式高手秘笈

字串長度 +

當我們想計算某個字串有幾個字元(包含空白
字 元 ),len() 是 相 當 實 用 的 技 巧。Python
的內建命令 len() 就是我們寫程式時會用到
的函式,本書之後還會陸續使用更多不同的函
式。若想知道字串 'WelcometoEarth,Ally 他根本不知道
Alien' 的字元數,請先產生這個字串,然後 敵人在哪!
快帶我去找
輸入以下這行程式碼,再按下『enter / return』 你們老大 ...
鍵,就能知道這個字串的字元數。

>>> len(message)
28
變數 27
資料型態――清單(List)

Python

1
使用多個變數
>>> rockets_player_1 = 'Rory'
假設我們正在開發一款多人進行的遊戲,需
>>> rockets_player_2 = 'Rav'
要儲存每個遊戲隊伍裡所有玩家的名字,我
們當然可以為每個玩家建立一個變數,就像 >>> rockets_player_3 = 'Rachel'
右邊的程式碼這樣…… >>> planets_player_1 = 'Peter'
>>> planets_player_2 = 'Pablo'
>>> planets_player_3 = 'Polly'
.

2
使用變數儲存資料清單
>>> rockets_players = ['Rory', 'Rav',
但如果每隊暴增為六位玩家,同時要管理和更
新這麼多變數,我們的工作會變得非常困難, 'Rachel', 'Renata', 'Ryan', 'Ruby']
在這種情況下,比較好的做法是使用清單。建 >>> planets_players = ['Peter', 'Pablo',
立清單時,必須將我們要儲存的所有資料值用 'Polly', 'Penny', 'Paula', 'Patrick']
中括號([ ])圍起來。請在 Shell 視窗裡練習輸
入右邊這些清單。
planets_players

3
從清單裡取出資料值
>>> rockets_players[0]
資料儲存到清單後,一切都好辦了。想取出清單
裡的某個資料值,寫法是先輸入清單的名稱,然 'Rory'
後在名稱後加上中括號([ ]),最後在中括號裡 >>> planets_players[5]
填 入 資 料 值 在 清 單 裡 的 位 置 編 號。 請 注 意: 'Patrick'
Python 在數清單裡的資料值時,不是從 1 開始
算,而是從 0 開始。現在請動手試試看,從隊伍 5
清單裡取出不同玩家的名字,第一個玩家的名字
是在清單裡編號 0 的位置,最後一個玩家則是在
編號 5 的位置。 enter return
28 PYTHON新手的第一步

做決定 呃 ...

我們每天都會問自己各種大大小小的問題,然後根據答案 我是
一匹馬嗎?
決定下一步要做什麼,例如,「外面正在下雨嗎?」、「我
的功課都寫完了嗎?」、「我是一匹馬嗎?」,同樣地,電
腦也會問問題,然後決定它下一步要做什麼。

比較性的問題
你真的想
這麼做?

▷ 布林值(Boolean value)
對 於 電 腦 問 的 問 題, 答 案 只 會 有 兩 個 值:True
(真)或 False(假),Python 稱這兩個值為布林 >>> answer_one = True
值。 使 用 布 林 值時,開頭第一個字母一定要大 >>> answer_two = False
寫,也能使用變數儲存布林值。

程式高手秘笈 ▽ 邏輯運算子
以下這些符號是告訴電腦進行比較,程
等號 式設計師稱這些符號為邏輯運算子,你
在 Python 裡,單等號『=』和雙等號『==』都能使用,但兩者的意 可能在上數學課時用過其中一些符號。
義不太一樣。單等號『=』用於指定變數值,例如,輸入 age=10, 其他像英文單字「and」(且)和「or」
表示指定變數 age 的數值為 10;雙等號『==』則用於比較兩個數值, (或)也能用在程式碼裡,作為邏輯運
請看以下的例子。 算子。

邏輯運算子 意義
== 等於
!= 不等於
< 小於
>>> age = 10 > 大於

>>> if age == 10:


print('You are ten years old.')
我比你「大」!
做決定 29
鳳梨和斑馬
Shell

pineapples zebras

>>> pineapples = 5
>>> zebras = 2

▽ ▷ 進行比較
>>> zebras < pineapples
接著,請輸入以下這幾行程式碼,比較前面兩個變數的
值。每次輸入完一行程式碼,請按下『enter / return』 True
鍵,Python 就 會 告 訴 我 們, 這 行 比 較 式 的 結 果 是 True
(真)還是 False(假)。

>>> pineapples > zebras >>> pineapples == zebras


True False

知識補給站 ▽ 組合多個比較式
在 Python 裡, 我 們 還 可 以 利 用 and 和 or 組 合 多 個 比 較
布林運算式(Boolean expression) 式。使用 and 時,必須兩個比較式的結果都正確,陳述式
如果程式碼的陳述式跟變數、數值有關,而且用到 的結果才能為 True(真);如果使用 or,只需要其中一個
邏輯運算子,則運算結果一定會是布林值,例如, 比較式的結果正確。
True(真)或 False(假)。因此,我們稱這類的陳
>>> (pineapples == 3) and (zebras == 2)
述式為布林運算式,此處所有用到變數 pineapples
和 zebras 的陳述式都是布林運算式。 False

(pineapples
== 3) False

>>> pineapples != zebras


>>> (pineapples == 3) or (zebras == 2)
True
True

(zebras == 2)
True
30 PYTHON新手的第一步

搭乘雲霄飛車 你太矮了,不能搭
140 雲霄飛車!

Mia 150
可是我已經
Shell 一百歲了!

Mia

enter return

>>> age = 10
>>> height = 1.5 140

>>> (age > 8) and (height > 1.4)


True

Mia

分支(Branching)

知識補給站 ▷ 往學校還是公園?
想像一下,每天我們都會問自己「今天
條件式(Condition) 是平常日嗎?」然後根據問題的答案來
條件式也是布林運算式(確 決定要走哪一條路。如果今天是平常日,
認情況為真或假),當電 就走往學校的路線;如果不是,則會走
腦在程式碼裡遇到分岔路 往公園的路線。在 Python 下,從程式裡
分支出去的不同路線會導向不同區塊的
時,條件式能幫助電腦決
程式碼。每個區塊的程式碼可能只有一
定要走哪一條路。
行,也可能有好幾行,每一行程式碼的
開頭都要縮排,也就是按四個空白鍵。
電腦會利用稱為「條件式」的測試方法,
指出下一步要執行哪一個區塊的程式碼。
做決定 31
▷ 一個分支
程式裡最簡單的分支命令是 if 陳述式,只 yn

有一個分支,符合條件時,電腦才會執行這 is_dark = input('Is it dark outside? y/n)')


個分支下的程式碼。右邊的範例程式問使用
if is_dark == 'y':
者「外面是不是天黑了?」如果是,電腦會
假 裝 它 要 睡 了! 如 果 條 件 式『is_ print('Goodnight! Zzzzzzzzzzzzzzz....')
dark=='y'』的結果為 False,也就是外面
Shell
沒有天黑,電腦就不會顯示「Goodnight!」
(晚安)這段訊息。

▷ 兩個分支
如果我們希望程式遇到情況為 True(真)和
False(假)時,分別做不同的事,就需要一 tentacles = input('Do you have tentacles? (n/y)')
個有兩個分支的命令,我們稱為 if-else if tentacles == 'y':
陳述式。右邊的範例程式問使用者是不是有
print('I never knew octopuses could type!')
觸手,如果使用者回答「是」,程式會認為
else:
使用者一定是章魚(octopus)!如果使用者
回 答「 不 是 」, 程 式 就 認 為 使 用 者 是 人 類 print('Greetings, human!')
(human)。程式會根據使用者的決定顯示
True False
不同的訊息。

▷ 多個分支
weather = input ('What is the forecast for today? (rain/snow/sun)')
如果可能發生的情況不只兩
個, 就 要 派 elif 陳 述 式
(「else-if」的縮寫)上場。右 if weather == 'rain': True
邊的程式請使用者輸入今天的 print('Remember your umbrella!')
天 氣 預 報:「rain」( 下 雨 )、
elif weather == 'snow':
「snow」(下雪)或「sun」(晴
天),然後根據使用者輸入的答 print('Remember your woolly gloves!')
案, 從 三 個 分 支 的 天 氣 條 件 else:
裡,選擇其中一個執行程式碼。 print('Remember your sunglasses!')

True
False

△ 程式技巧
elif 陳述式一定會出現在 if 陳述式後面和 else 陳述式
前面。在上面的範例程式中,只有當 if 陳述式的結果是
False(假),程式才會用 elif 來檢查輸入的天氣是不是
「snow」(下雪)。還可以加入更多的 elif 陳述式,檢查
更多種類的天氣。
32 PYTHON新手的第一步

重複執行的迴圈(Loop)
電腦非常擅長做枯燥乏味的工作,而且完全不會抱怨,但程式設計
師會,可是他們擅長利用電腦幫他們做重複的工作,只要使用迴圈
這項技巧就能辦到。迴圈的功能是重複執行同一段程式碼,接下來
我們會介紹幾種不同類型的迴圈。

『For』迴圈
For
Emma
Emma Shell
Emma Emma
Emma
enter return Emma
backspace Emma
Emma
enter return Emma
Emma
Emma
Emma
Emma
>>> for counter in range(1, 11): Emma
print('Emma\'s Room - Keep Out!!!')

▽ 迴圈變數 程式高手秘笈
迴圈變數的目的是幫助我們追蹤到目前為止已經執行了幾次迴圈。 範圍(Range)
range(1, 11) 會產生一份整數清單,執行第一次迴圈時,變數是
在 Python 程 式 碼 裡, 內 建 命 令
清單裡的第一個數字,執行第二次迴圈時,變數就變成清單裡的第
二個數字,以此類推。當清單裡所有的數字都用完後,程式就會停 『range』後面的括號裡必須填入兩
止執行迴圈。 個參數,表示範圍包含「從第一個數
執行第一次迴圈 執行第二次迴圈 執行第三次迴圈 字開始,到第二個數字減 1 為止的所
有 數 字 」。 所 以,range(1, 4) 是
指 數 字 1、2 和 3, 但 不 包 含 4。 在
Emma 寫 的「 請 勿 進 入 」 程 式 裡,
range(1, 11) 是指數字 1、2、3、4、
5、6、7、8、9 和 10。
迴圈變數為 1 迴圈變數為 2 迴圈變數為 3
重複循環的迴圈 33
程式高手秘笈

跳脫字元(Escape character)
程式碼 Emma\’sRoom 裡的反斜線(\)是告訴 Python 程式忽略下一
個字元――撇號(’),不要把它當成包覆整個字串的單引號之一。
我們稱這裡用到的反斜線(\)為跳脫字元,目的是告訴 Python 執行 我脫逃了!
程式時,不論這一行程式碼是合理還是有錯,都不要處理下一個字元。

『while』迴圈
我看到迴圈的未來了,
它會一直不斷循環!

while

▷ 迴圈條件
while 迴圈沒有迴圈變數來幫助它設定執行次數的範圍,取而
你的迴圈條件
代之的是迴圈條件,這是一個布林運算式,結果不是 True(真)
不是 True(真),
就是 False(假),有點像舞廳門口的保鑣,工作就是負責問你 今天是 所以不能進來!
有沒有門票。如果身上有票(True),就可以直衝舞池;但如果 舞會
沒有(False),保鑣就不會放你進去。在程式設計領域裡,如果 之夜!
不符合迴圈條件(True),程式就不會執行迴圈!
!?

?
▽ 平衡遊戲
在下面的範例裡,Ahmed 寫的程式目的是追蹤多少隻雜耍河
馬互相往上疊,才能堆出一個平衡塔。請看看下面的程式碼,
你是否能找出這個程式的運作原理呢?

>>> hippos = 0
>>> answer = 'y'
>>> while answer == 'y': Ahmed

hippos = hippos + 1 answer


print(str(hippos) + ' balancing hippos!')
answer = input('Add another hippo? (y/n)')
34 PYTHON新手的第一步

▷ 程式技巧
在 Ahmed 的程式裡,answer=='y' 就是迴
圈條件,表示使用者想多加一隻河馬。迴圈 嗯 ... 或許我該再
本體的程式會將平衡塔上的河馬隻數加 1, 多加一隻河馬?
然後問使用者「要再加一隻河馬嗎?」如果
使用者輸入的答案是『y』(要),表示迴圈
條件是 True(真),程式會再執行一次迴圈;
如果使用者輸入的答案是『n』(不要),迴
圈條件就是 False(假),程式會離開迴圈本
體,不再執行。

『無窮』迴圈 False

>>> while True:


while
print('This is an infinite loop!')

△ 陷入無窮迴圈
當迴圈條件設定為常數值:True(真),就會設計出無窮迴圈。因
為這個常數值永遠不會改變,程式當然沒有機會離開迴圈。請在
Shell 視窗裡試著寫寫看上面這個『while』迴圈,由於這個迴圈
程式高手秘笈 條件沒有機會變成 False(假),只能不停地在螢幕上印出『This is
an infinite loop!』(這是一個無窮迴圈!),直到程式停止為止。
停止迴圈
如果你不想設計出無窮迴圈,重點是確
定『while』迴圈本體有方法能讓迴圈條 ▽ 脫離無窮迴圈
件變成 False(假)。但如果不小心寫出 你可以故意拿下面這個無窮迴圈,請使用者輸入他們的答案。這
個(煩人的)程式會問使用者是不是覺得厭煩?只要使用者一直
無窮迴圈,別擔心,還是有方法能中斷
輸入『n』,程式就會持續問這個問題,直到使用者覺得受夠了,
迴 圈, 請 同 時 按 下 鍵 盤 上 的
終於輸入『y』,程式才會說使用者很無禮,然後執行 break 命
『Ctrl / control』鍵和『C』鍵,可能需 令,離開迴圈!
要多按幾次『Ctrl-C』才能停止迴圈。
True
’n’

>>> while True:


answer = input('Are you bored yet? (y/n)')
Ctrl-C if answer == 'y': False
print('How rude!')
break
break ’y’
重複循環的迴圈 35
迴圈中的迴圈 程式高手秘笈

迴圈本體的縮排規則
nested 迴圈本體的每一行程式碼前面一定要縮排,也就是先
loop 敲四個空格再開始寫程式碼,如果沒有縮排,Python
會顯示錯誤訊息,表示無法執行程式碼。使用巢狀迴
圈時,迴圈內部的另一個迴圈本體必須再多縮排四個
空格。雖然在 Python 迴圈裡,每新增一行程式碼都會
自動縮排,不過,最好還是記得檢查迴圈裡每一行程
我喜歡俄羅斯娃娃, 式碼前面的縮排空格數是否正確。
但是他們總是
以自我為中心!
SyntaxError(語法錯誤)

unexpected indent
(程式碼沒有縮排)

OK
hooray_counter

▷ 外迴圈裡的內迴圈
>>> for hooray_counter in range(1, 4):
Emma 把 之 前 的「 請 勿 進 入 」 程
式 改 寫 成 右 邊 的 範 例「 三 次 歡 for hip_counter in range(1, 3):
呼」,讓程式重複顯示三次『Hip, print('Hip')
Hip, Hooray!』(嘿,嘿,萬歲!)。 print('Hooray!')
由於每次歡呼都會重複兩次
「Hip」,Emma 利 用 巢 狀 迴 圈 幫
hip_counter
她重複顯示訊息。

Hip
hooray_counter = 1 hip_counter = 1 ◁ 程式技巧
Hip
從上面的範例程式中可以看到,
hip_counter = 2
Hooray! 內層的『For』迴圈整個包覆在
Hip 外 層 的『For』 迴 圈 裡。 因 此,
hooray_counter = 2 hip_counter = 1 每執行一次外層迴圈,就必須執
Hip
hip_counter = 2 行兩次內層迴圈,也就是說外層
Hooray!
迴圈本體執行三次,但內層迴圈
Hip 本體總共會執行六次。
hooray_counter = 3 hip_counter = 1
Hip
hip_counter = 2
Hooray!
36 PYTHON新手的第一步

動物益智問答
我還以為我是世界
你喜歡益智問答遊戲嗎?想自己動手開發嗎?這個程式範例會帶 上最大的動物。
你建立一個動物益智問答的遊戲。雖然範例中所舉的問題都跟動
物有關,不過很容易就能修改並且輕鬆套用在任何主題上。

範例說明

Shell

Python 3.5.2 Shell

Guess the Animal!


Which bear lives at the North Pole? polar bear
Correct answer
Which is the fastest land animal? cheetah
Correct answer
Which is the largest animal? giraffe
Sorry, wrong answer. Try again. elephant
Sorry, wrong answer. Try again. rhinoceros
The correct answer is blue whale
Your score is 2
動物益智問答 37
程式技巧 ▽ 程式流程圖
遊戲結束前,程式會一直不斷檢查還有沒有問題沒回答到
function 以及玩家是否已經用掉了所有的答題機會。遊戲進行過程
中,程式會以變數儲存玩家獲得的分數。當玩家回答完所
有的問題,遊戲就會結束。

Python
程式開始

設定分數初始值為0
▷ 呼叫函式
當我們想使用某個函式,只要在
程 式 碼 裡 輸 入 函 式 名 稱, 就 能
顯示文字
「呼叫」(call)它出來幫忙。在
「Guess the Animal!」
「動物益智問答」裡,為了知道
玩家的答案是否正確,我們設計
一個函式,負責比較玩家回答的
內容和真正的答案。問答進行過 顯示問題,並且取得
玩家輸入的答案
程中,玩家每次回答問題,程式
都會呼叫這個函式。

檢查玩家的答案
知識補給站

在這個情況下可以忽略大小寫!

比較玩家猜測的內容和正確答案時,可以不用管玩
玩家答案 玩家是否還有
家輸入的字母是大寫還是小寫,重要的是文字的內 是否正確? 答題機會?
容都一樣,然而,不是所有程式都能這麼做。例如,
如果某個程式檢查密碼時忽略大小寫,就可能會讓

密碼更容易被猜出來,因而降低安全性。但是,在
「動物益智問答」裡,不論玩家輸入的答案是「bear」 分數加1

還是「Bear」,對我們來說,都是正確答案。 是 否

是否還有問題
可以測驗玩家?


顯示玩家獲得的總分

程式結束
38 PYTHON新手的第一步

組合所有步驟
我希望我不是毒蛇―
我只是咬到舌頭而已!

1
建立新檔
File(檔案)
開 啟 IDLE 工 具。 點 擊 工 具 列 上 的
『File』( 檔 案 ), 選 擇『New File』 Save(儲存檔案)
( 新 增 檔 案 ), 將 檔 案 名 稱 儲 存 為
『animal_quiz.py』。 Save As(另存新檔)

2
產生變數 score
score = 0
輸 入 右 邊 的 程 式 碼, 產 生 變 數
score,並且設定變數初始值為 0。

Shell

3
介紹遊戲玩法
score = 0
接著建立文字訊息,向玩家介紹遊戲
print('Guess the Animal!')
玩法,這是玩家在螢幕上看到的第一
個訊息。

4
執行程式碼
Run(執行)
現在請執行程式碼。點擊工具列的
『Run』(執行),選擇『Run Module』 Python Shell(開啟Shell視窗)
(執行程式),看看接下來會發生什
麼事?應該會在 Shell 視窗裡看到一 Check Module(檢查語法錯誤)
行歡迎玩家的訊息。 Run Module(執行程式)

5
問玩家問題,讓玩家輸入答案
print('Guess the Animal!')
右邊這行粗體字程式碼是問玩家問
題,並且等他們輸入答案,玩家輸入 guess1 = input('Which bear lives at the North Pole? ')
的答案會存在變數 guess1 裡。請執
行程式碼,確定螢幕上會出現題目。
guess1
動物益智問答 39

6
建立檢查函式
def check_guess(guess, answer):
接下來的工作就是檢查玩家是不是猜
對了。請移動到程式碼的第一行,也 global score
就是在程式碼 score=0 上面輸入右邊 if guess == answer:
這 幾 行 粗 體 字 程 式 碼, 建 立 函 式 print('Correct answer')
check_guess(),目的是檢查玩家猜 score
score = score + 1
的答案是否正確。函式括號裡有兩個
英文單字,這是函式運作時需要的資 score = 0
訊,我們稱為「參數」(parameter),
1
呼叫(執行)函式時需要指定(給)
參數值。

7
呼叫函式
guess1 = input('Which bear lives at the North Pole? ')
現在我們要在整個程式碼的最後一
行下面,加上右邊這一行粗體字程 check_guess(guess1, 'polar bear')
式 碼, 目 的 是 呼 叫( 執 行 ) 函 式
check_guess(), 並 且 告 訴 函 式
拿玩家猜的答案作為第一個參數
值,正確答案『polar bear』則是第
二個參數值。

8
測試程式碼
Guess the Animal!
請再執行一次程式碼,根據程式指示
輸 入 正 確 答 案,Shell 視 窗 應 該 會 出 Which bear lives at the North Pole? polar bear
現右邊這樣的結果。 Correct answer

9
多加一點題目
設計益智問答遊戲當然不能只有一個題目!請依照 讓我多加一點。
前面這些相同的步驟,在程式裡多加兩個題目,把
玩 家 輸 入 的 答 案 分 別 儲 存 到 變 數 guess2 和
guess3。

score = 0
print('Guess the Animal!')
guess1 = input('Which bear lives at the North Pole? ')
check_guess(guess1, 'polar bear') guess1

guess2 = input('Which is the fastest land animal? ')


check_guess(guess2, 'cheetah')
guess3 = input('Which is the largest animal? ') guess3
check_guess(guess3, 'blue whale')
40 PYTHON新手的第一步

10
顯示分數
當問答遊戲結束時,下面這一行粗體字的程式碼會以文字訊息顯示玩家
獲得的總分。把這一行加在整個檔案的最後一行,也就是最後一個問題
的程式碼下面。

guess3 = input('Which is the largest animal? ')


check_guess(guess3, 'blue whale')

print('Your score is ' + str(score))

△ 程式技巧
這一步必須利用函式 str(),將數字轉換成字串,
這是因為在 Python 裡,如果直接將字串和整數放
在一起,程式會出現錯誤。

11
忽略大小寫
def check_guess(guess, answer):
如果玩家把「Lion」輸入成「lion」,會
發 生 什 麼 事? 還 是 能 獲 得 一 分 嗎? 不 global score
行,目前的程式碼會告訴玩家:答案錯 if [Link]() == [Link]():
了!為了修正這個情況,我們需要讓程 print('Correct answer')
式碼變得聰明一點。Python 的內建函式
score = score + 1
lower() 能把單字裡所有的字母轉成小
寫, 請 把 原 本 程 式 碼 裡 的
ifguess==answer: 換成右邊這一行粗 △ 程式技巧
體字程式碼。 程式檢查正確答案之前,會先把
玩家猜的內容和真正的答案全都
轉換成小寫。如此一來,不論玩
家輸入的內容是用大寫、小寫還
12
再次測試程式碼
是兩者混用,程式都一定能運作。
第三次執行程式碼。這次在輸入正確答案時,請試
著混用大、小寫字母,看看會發生什麼結果?

Guess the animal!


Which bear lives at the North Pole? polar bear
Correct answer
Which is the fastest land animal? Cheetah
Correct answer
Which is the largest animal? BLUE WHALE
Correct answer
Your score is 3
動物益智問答 41

13
給玩家更多機會
在目前的程式裡,玩家只有一次答題機會,想
讓遊戲更輕鬆一點,可以改成給玩家三次答題
機 會。 請 參 考 以 下 的 粗 體 字 程 式 碼 修 改 函 式
check_guess()。

別忘了儲存你的
True False 工作成果。

def check_guess(guess, answer):


global score
while
still_guessing = True
attempt = 0
while still_guessing and attempt < 3:
if [Link]() == [Link]():
print('Correct answer')
score = score + 1
still_guessing = False
else
else:
if attempt < 2:
guess = input('Sorry wrong answer. Try again. ')
attempt = attempt + 1
1

if attempt == 3:
print('The correct answer is ' + answer)

score = 0

△ 程式技巧
為了知道玩家是不是已經猜到正確答
案, 我 們 需 要 產 生 一 個 變 數 still_
guessing,並且先設定變數值為 True 「最大的動物是誰?」
我不知道。
(真),表示玩家還沒猜到正確答案;
給我三次機會猜猜看!
當玩家猜到正確答案時,就將變數值設
定為 False(假)。

You might also like