⊙了解Python程式邏輯,帶你解決日常生活中的問題!
⊙理論與程式案例互相搭配,學習記憶更深刻!
⊙過關斬將!附有大學程式設計先修檢測(APCS)試題解析。
擁有一個好的工具,處理問題會更方便又快速。程式設計是一種利用電腦程式語言解決問題的工具,只要將所要處理的問題,依據程式的語法描述出問題的流程,電腦便會根據我們所設定的程序,完成目標。
本書是一本適合高中職生閱讀的Python語言自學書,從說明何謂程式,逐步介紹Python語言的語法,搭配程式範例,實際操作與撰寫,精進對程式語言的熟練度及興趣。每個章節末附有大學程式設計先修檢測(APCS)試題解析,提供未來想申請大學資訊相關科系的高中職生有明確的學習方向。
作者簡介:
邏輯林
學歷
國立清華大學 工業工程與工業管理 博士
著作
無師自通的C語言程式設計:附大學程式設計先修檢測(APCS)試題解析軟體
無師自通的C++語言程式設計:附大學程式設計先修檢測(APCS)試題解析軟體
無師自通的Python語言程式設計:附大學程式設計先修檢測(APCS)試題解析軟體
無師自通的物件導向程式設計:結合生活與遊戲的 Visual Basic 語言
無師自通的期貨交易程式設計入門-使用MultiCharts
軟體開發
中醫健保資訊系統
章節試閱
Chapter 2資料型態
資料,是任何事件的核心。不同事件所產生的資料各有差異,因應之道也不盡相同。例:隨著COVID-19新冠狀肺炎疫情的嚴重與否,各國航空公司對航班的刪減程度會有所增減。
在程式設計中,不同問題所要處理的資料,在型態上也不盡相同。例一:「數值運算」問題,資料的型態理當為「數值」。例二:「地址填寫」問題,資料的型態理當為「文字」。
程式設計對資料的處理,包括資料輸入、資料運算及資料輸出三部份。因此,認識資料型態,是資料處理的基本課題。
2-1 資料型態
Python語言的資料型態,有int(整數)、float(浮點數)及str(字串)三種型態。整數型態又分成int(整數)及bool(布林)。浮點數型態又分成float及complex(複數)。
2-1-1 整數型態
沒有小數點的數值,稱為整數。整數型態分成以下兩種:
1. int(整數):系統提供整數的範圍只受限於機器的記憶體大小,意味
者要處理上百位數字的整數是很容易的。
2. bool(布林):只有「True」及「False」這兩種常數。它主要是用
來代表條件判斷式的結果,「True」代表「真」,「False」代表
「假」。
2-1-2 浮點數型態
含有小數點的數值,稱為浮點數。Python提供常用的浮點數型態有以下兩種:
1. float (帶正負號的單精度浮點數):float型態的資料範圍,由用於編譯Python之C、C#或Java所決定。儲存float型態的資料時,一般只能準確16~17位(整數位數+小數位數)。
2. complex(複數):此型態包含一對float,一個表示實數部分,另一個表示虛數部分。即,一個複數的表示方式為:實數 ± 虛數j。
浮點數的表示方式,有以下三種:
1. 以一般常用的小數點方式來表示。例:9.8、-3.14、1.2等。
2. 以科學記號方式來表示。例:5.143e-21、-1.2E+6等。
3. 以一對float來表示複數。例:0.5j、-4+0j、1-3.7j等。
2-1-3 字串型態
放在一組「"」(雙引號)或一組「'」(單引號)中的文字,則稱為字串型態資料。例:「"早安"」及「'morning'」均為字串。若要顯示特殊字元(例:「"」)或移動游標(例:換列),必須以一個「\」(逸出字元:Escape Character)作為開頭,後面加上該字元或該字元所對應的16進位ASCII碼,才能將特殊字元顯示在螢幕上或移動游標。這種組合方式,稱為「逸出序列」(Escape Sequence)。
若要輸出盤上沒有文字,則可使用以「\u」開頭,後面跟著4~5位的16進位數字。例:"\u263A",是「""」對應的Unicode碼;"\u0041",是「"A"」對應的Unicode碼。
2-2 識別字
程式執行時,無論是輸入的資料或產生的資料,都是存放在電腦的記憶體中。那要如何存取記憶體中的資料呢?大多數的高階語言,都是透過常數識別字或變數識別字來存取其所對應的記憶體中之資料。
程式設計者自行命名的變數(Variable)、函式(Function)、參數(Parameter) 等名稱,都稱為識別字(Identifier)。識別字的命名規則如下:
1. 識別字名稱只能以「A~Z」、「a~z」或「_」(底線)為開頭。
2. 識別字名稱的第二個字(含)開始,只能是「A~Z」、「a~z」、「_」或「0~9」。
3. 盡量使用有意義的名稱,當作識別字名稱。
4. 識別字名稱有大小寫字母區分。若英文字相同但大小寫不同,則這兩個識別字名稱是不同的。
5. 不可使用保留字(或關鍵字)名稱,當作其他識別字的名稱。保留字為編譯器專用的識別字名稱,每一個保留字都有其特殊的意義,因此不能當作其他識別字名稱。
Chapter 2資料型態
資料,是任何事件的核心。不同事件所產生的資料各有差異,因應之道也不盡相同。例:隨著COVID-19新冠狀肺炎疫情的嚴重與否,各國航空公司對航班的刪減程度會有所增減。
在程式設計中,不同問題所要處理的資料,在型態上也不盡相同。例一:「數值運算」問題,資料的型態理當為「數值」。例二:「地址填寫」問題,資料的型態理當為「文字」。
程式設計對資料的處理,包括資料輸入、資料運算及資料輸出三部份。因此,認識資料型態,是資料處理的基本課題。
2-1 資料型態
Python語言的資料型態,...
作者序
一般來說,以人工方式處理日常生活事務,只要遵循程序就能達成目標。但以下類型案例告訴我們,以人工方式來處理,不但效率低浪費時間,且不一定可以在既定時間內完成。
1. 不斷重複的問題。例:早期人們要提存款,都必須請銀行櫃檯人員辦理。在人多的時候,等候的時間就拉長。現在有了存提款的自動櫃員機(ATM),存提款變成一件輕輕鬆鬆的事了。
2. 大量計算的問題。例:設f(x) = x100 + x99 + ⋯ + x + 1,求f(2)。若用人工方式計算,則無法在短時間內完成。有了計算機以後,很快就能得知結果。
3. 大海撈針的問題。例:從500萬輛車子中,搜尋車牌為888-8888的汽車。若用肉眼的方式去搜尋,則曠日廢時。現在有了車輛辨識系統,很快就能發現要搜尋的車輛。
一個好的工具,能使問題處理更加方便及快速。以上案例都可利用電腦程式求解出來,由此可見電腦程式與生活的關聯性。程式設計是利用電腦程式語言來解決問題的一種工具,只需將所要處理的問題,依據程式語言的語法描述出問題之流程,電腦便會根據所設定的程序,完成既定的目標。
多數的程式設計初學者,因學習效果不佳無法引發興趣及帶來成就感,進而對程式設計課程產生排斥。導致學習效果不佳的主要原因,有下列三點:
1. 上機練習時間不夠,加上不熟悉電腦程式語言的語法撰寫,導致花費太多時間在偵錯處理上,進而對學習程式設計缺乏信心。
2. 對問題的處理作業流程(或規則)不了解,或畫不出問題的流程圖,導致無法寫出問題的邏輯表達,使程式正常運作。
3. 不知如何將程式設計的概念,應用在日常生活所遇到的問題上。
因此,初學者在學習程式設計時,除了熟悉電腦程式語言的語法並不斷上機練習外,還必須了解問題的處理作業流程,才能使學習達到事半功倍的效果。
本書所撰寫之文件,若有謬誤或疏漏之處,尚祈先進方家及讀者的不吝指正,以匡不逮。謝謝!
2021/9/14 巳時
邏輯林 於大學池
一般來說,以人工方式處理日常生活事務,只要遵循程序就能達成目標。但以下類型案例告訴我們,以人工方式來處理,不但效率低浪費時間,且不一定可以在既定時間內完成。
1. 不斷重複的問題。例:早期人們要提存款,都必須請銀行櫃檯人員辦理。在人多的時候,等候的時間就拉長。現在有了存提款的自動櫃員機(ATM),存提款變成一件輕輕鬆鬆的事了。
2. 大量計算的問題。例:設f(x) = x100 + x99 + ⋯ + x + 1,求f(2)。若用人工方式計算,則無法在短時間內完成。有了計算機以後,很快就能得知結果。
3. 大海撈針的問題。例:從500萬輛車...
目錄
自序 ii
Chapter1 電腦程式語言介紹
1-1 何謂程式設計
1-2 Python語言簡介
1-3 Python IDLE軟體簡介
1-4 良好的程式撰寫習慣
1-5 提升讀者對程式設計之興趣
1-6 隨書光碟之使用說明
1-7 大學程式設計先修檢測 (Advanced Placement Computer Science, APCS)
大學程式設計先修檢測 (APCS) 試題解析
Chapter2 資料型態
2-1 資料型態
2-2 識別字
2-3 變數宣告
2-4 資料處理
2-5 運算子的優先順序
2-6 資料型態轉換
大學程式設計先修檢測 (APCS) 試題解析
Chapter3 資料輸入與資料輸出
3-1 資料輸出
3-2 資料輸入
3-3 浮點數之準確度
大學程式設計先修檢測 (APCS) 試題解析
Chapter4 流程控制
4-1 程式流程控制
4-2 選擇結構
4-3 巢狀選擇結構
大學程式設計先修檢測 (APCS) 試題解析
Chapter5 迴路結構
5-1 迴路結構
5-2 break與continue敘述
5-3 其他迴路應用範例
大學程式設計先修檢測 (APCS) 試題解析
Chapter6 內建函式
6-1 常用的Python語言內建函式
6-2 絕對值函式abs
6-3 字元函式
Chapter7 串列
7-1 串列變數宣告
7-2 排序與搜尋
7-3 二維串列變數
7-4 字串
7-5 隨機亂數
大學程式設計先修檢測 (APCS) 試題解析
Chapter8 自訂函式
8-1 函式定義
8-2 函式呼叫
8-3 參數為串列的函式
8-4 益智遊戲範例
大學程式設計先修檢測 (APCS) 試題解析
Chapter9 遞迴函式
9-1 遞迴
9-2 合併排序法(Merge Sort)
9-3 益智遊戲範例
大學程式設計先修檢測 (APCS) 試題解析
Chapter10 資料結構
10-1 資料結構
10-2 堆疊 (Stack) 及佇列 (Queue)
10-3 樹 (Tree)
自序 ii
Chapter1 電腦程式語言介紹
1-1 何謂程式設計
1-2 Python語言簡介
1-3 Python IDLE軟體簡介
1-4 良好的程式撰寫習慣
1-5 提升讀者對程式設計之興趣
1-6 隨書光碟之使用說明
1-7 大學程式設計先修檢測 (Advanced Placement Computer Science, APCS)
大學程式設計先修檢測 (APCS) 試題解析
Chapter2 資料型態
2-1 資料型態
2-2 識別字
2-3 變數宣告
2-4 資料處理
2-5 運算子的優先順序
2-6 資料型態轉換
大學程式設計先修檢測 (APCS) 試題解析
Chapter3 資料輸入與資料輸出
3-1 資料輸...