洪錦魁
台灣計算機專家,IT圖書知名作者。其著作特色為所有程序語法會依特性分類,同時以實用的程序實例進行解說,讓讀者可以事半功倍地輕鬆掌握相關知識。
序
多次與教育界的朋友相聚,談到計算機語言的發展趨勢時,大家一致認為Python 是當今最重要的計算機語言。許多知名公司,例如Google、Facebook 等皆已將Python 列為必備計算機語言。許多人想學Python,市面上的書也不少,但書中對Python 語法的講解並不完整,造成讀者學習上的障礙,讀者讀完一本Python 書籍,仍然看不懂專家寫的Python 程序。因此,筆者決定撰寫一本用豐富、實用、有趣的實例完整且深入講解Python 語法的入門書籍。
Python 以簡潔著名,語法非常靈活,同時擁有豐富、實用的模塊。本書除了以實例解說Python 語法,還會穿插講解各種模塊,以幫助讀者更靈活地掌握Python。此外,筆者也嘗試在書中穿插基本的科學、數學、統計與人工智能的基礎知識,幫助讀者為進一步的學習打下紮實的基礎。
本書包含800 多個程序實例,搭配400 多個模塊,並輔以200 多道實踐習題,細緻講解Python 語法。本書也會說明下列知識與應用:
? 人工智能基礎知識;
? Python 彩蛋;
? 從bytes 數據、 編碼(encode)、 譯碼(decode)說起,到精通列表(list)、元組
(tuple)、字典(dict)、集合(set);
? 從小型列表、元組、字典到大型數據資料的建立;
? 生成式(generator)建立Python 數據結構;
? 在坐標軸內計算任意兩點之間的距離,同時解說與人工智能的關聯;
? 用經緯度計算地球任意兩座城市之間的距離,學習取得地球任意位置的經緯度;
? 用萊布尼茨公式、尼拉卡莎級數、蒙特卡羅模擬計算圓周率;
? 講解基礎函數觀念,也深入到嵌套、closure、lambda、Decorator 等高階應用;
? 對map( ) 和reduce( ) 進行完整解說,並進一步配合lambda 解說高級應用;
? 建立類別的同時深入講解裝飾器@property、@classmethod、@staticmethod 與類別
特殊屬性與方法;
? 設計與應用自己設計的模塊、活用外部模塊(module);
? 賭場騙局;
? 自己設計加密與解密程序;
? Python 的輸入與輸出;
? 文件壓縮與解壓縮;
? 程序除錯與異常處理;
? 文件讀取與目錄管理;
? 剪貼板應用;
? 正則表達式;
? 遞歸式觀念與碎形Fractal ;
? 圖像處理與文字辨識,更進一步說明計算機儲存圖像的方法;
? 基本與進階QR code 製作;
? 詞云(Word Cloud)設計;
? GUI 設計:設計小計算器;
? 動畫與遊戲;
? matplotlib 中英文圖表繪製;
? 說明CSV 和JSON 文件;
? 股市數據讀取與圖表製作;
? Python 解線性代數;
? Python 解聯立方程式;
? Python 執行數據分析;
? 科學計算與數據分析Numpy、Scipy、Pandas。
筆者編寫過許多計算機領域的著作,本書將沿襲筆者以往著作的特色,程序實例豐富。相信讀者通過學習本書內容,一定可以快速精通Python。筆者雖力求完美,但是書中不足與疏漏在所難免,請不吝指正。
洪錦魁
2019.10.31
第1章?基本概念
1-1?認識Python?................................2
1-2? Python的起源?.............................2
1-3? Python語言發展史........ ...............3
1-4? Python的應用範圍?......................4
1- 5?靜態語言與動態語言?.....................4
1-6?跨平台的程序語言?.......... ...............5
1-7?系統的安裝與執行?........................ .5
1-8? Python?2與Python?3不相容的
? ? ???驗證?.......................... .................5
1-9?文件的建立、存儲、執行與打開?......6
1-9-1文件的建立... .................................... 6
1-9-2文件的存儲..... .................................. 7
1-9-3文件的執行....... ................................ 7
1-9-4打開文件.......... ................................. 8
1-10?程序註釋?...................................8
1-10-1註釋符號# ...................................... 8
1-10-2三個單引號或雙引號..................... 9
1-11? Python彩蛋?................... ...........9
習題..................................... ........................ 10
第2章?認識變量與基本數學運算
2-1?用Python做計算?...... .................12
2-2?認識變量?......................... ..........12
2-2-1基本概念................................ ..... 12
2-2-2認識變量的地址............................. 14
2-3?認識程序的意義?..........................14
2-4?認識註釋的意義?.......... ................15
2-5? Python變量與其他程序語言的
? ? ???差異?............... ..........................15
2-6?變量的命名原則?..........................15
2-7?基本數學運算?...... .......................17
2-7-1四則運算
2-7-2餘數和整除........... .......................... 17
2-7-3次方................ ................................. 18
2-7-4 Python語言控制運算的優先級.... . 18
2-8?指派運算符?................................18
2-9? Python等號的多重指定使用?........19
2-10?刪除變量?............................. ....20
2-11? Python的斷行?.........................20
2-11-1一行有多個語句. .......................... 20
2-11-2將一個語句分成多行............ ........ 21
2-12?專題——複利計算/計算圓面積
? ? ? ??與圓周長?................... ..............21
2-12-1銀行存款複利的計算................... 21
2-12-2計算圓面積與周長....................... 22
習題.............. ............................................... 22
第3章? Python的基本數據類型
3-1? type(?)函數?...............................26
3 -2?數值數據類型?.............................26
3-2-1整數int ...... ..................................... 26
3-2-2浮點數..... ........................................ 27
3-2-3基本數值數據的使用..................... 27
3-2-4整數與浮點數的運算................ ..... 27
3-2-5二進制整數與函數bin( ) ................ 28
3-2-6八進制整數與函數oct( ) ... ............. 29
3-2-7十六進制整數與函數hex( ) ........... 29
3-2-8強制數據類型的轉換..................... 29
3-2-9數值運算常用的函數................. .... 30
3-2-10科學記數法................................... 31
3-3?布爾值數據類型?..........................32
3-4?字符串數據類型?.......... ................34
3-4-1字符串的連接........................ ......... 34
3-4-2處理多於一行的字符串................. 35
3-4-3轉義字符
3- 4-4 str( )函數........................................ 36
3- 4-5將字符串轉換為整數..................... 37
3-4-6字符串與整數相乘產生字符串
複製效果... ...................................... 37
3-4-7聰明地使用字符串加法和換行
字符\n ............................................ 38
3-4-8字符串前加r ................................... 38
3-5?字符串與字符.............................38
3-5-1 ASCII碼......... ................................ 39
3-5-2 Unicode碼...................................... 39
3-5- 3 utf-8編碼........................................ 40
3-6? bytes數據................................40
3-6-1 Unicode字符串轉成bytes數據... .. 41
3-6-2 bytes數據轉成Unicode字符串..... 42
3-7?專題——地球到月球時間計算/
? ?計算坐標軸兩點之間的距離..... ......42
3-7-1計算地球到月球所需時間.............. 42
3-7-2計算坐標軸兩個點之間的距離. ..... 43
習題........................................... .................. 44
第4章?基本輸入與輸出
4-1? Python的輔助說明help( ) ..........47
4 -2?格式化輸出數據使用print( ).........47
4-2-1函數print( )的基本語法................ 47
4-2-2格式化print( )輸出........................ 48
4-2-3精準控制格式化的輸出... .............. 50
4-2-4 format( )函數................................. 52
4-2-5字符串輸出與基本排版的應用...... 54
4-2-6一個無聊的操作............................ . 54
4-3?輸出數據到文件..........................55
4-3-1打開一個文件open( ) .. ................... 55
4-3-2使用print( )函數輸出數據到
文件................ ................................ 56
4-4?數據輸入input( )........ ................56
4-5?處理字符串的數學運算eval( ) ......58
4-6?列出所有內建函數dir( ) ...............59
4-7?專題——溫度轉換/房貸問題/正五
? ?角形面積/利用經緯度計算距離.....59
4-7- 1設計攝氏溫度和華氏溫度的轉換
4-7-2房屋貸款問題................................. 60
4-7-3正五角形面積................................. 61
4-7-4利用經緯度計算地球各城市間的
距離................................................ 62
習題................................................. ............ 63
第5章?流程控制及if語句的使用
5-1?關係運算符................... .............67
5-2?邏輯運算符............................. ...68
5-3? if語句.......................................69
5-4? if … else語句............................71
5-5? if … elif … else語句... ...............73
5-6?嵌套的if語句......................... ....76
5-7?尚未設置的變量值None..............76
5-8?專題——BMI程序/猜出生日期/
? ? ?十二生肖系統/線性方程式...........77
5-8-1設計人體體重健康判斷程序.......... 77
5-8-2猜出生日期.... ................................. 78
5-8-3十二生肖系統....... .......................... 80
5-8-4求一元二次方程式的根................. 81
5-8-5求解聯立線性方程式.......... ........... 82
習題..................................... ........................ 82
第6章?列表
6-1?認識列表.............. .....................87
6-1-1列表基本定義.................... ............. 87
6-1-2讀取列表元素........................... ...... 88
6-1-3列表切片.................................... ..... 89
6-1-4列表索引值是-1 ............................ 90
6-1- 5列表最大值max( )、最小值
min( )、總和sum( ) ....................... 91
6-1-6列表個數len( ) ............................... 92
6-1-7更改列表元素的內容..... ................ 92
6-1-8列表的相加........................ ............. 93
6-1-9列表乘以一個數字......................... 94
6-1-10列表元素的加法操作.... ............... 94
6-1-11刪除列表元素.......................... ..... 95
6-1-12列表為空列表的判斷................... 96
6-1-13刪除列表...... ................................. 96
6-1-14補充多重指定與列表
6-2? Python簡單的面向對象概念........97
6-2-1更改字符串大小寫lower( )/
upper( )/title( ) ................ ................ 97
6-2-2刪除空格符rstrip( )/lstrip( )/
strip( ) .............. ............................... 98
6-2-3格式化字符串位置center( )/
ljust( )/ rjust( ) .................................. 99
6-2-4 dir( )獲得系統內部對象的方法... 100
6-3?獲得列表的方法........................101
6-4?增加與刪除列表元素.. ...............102
6-4-1在列表末端增加元素append( ) ... 102
6-4-2插入列表元素insert( ) .................. 102
6-4 -3刪除列表元素pop( )..................... 103
6-4-4刪除指定的元素remove( ) ........ ... 103
6-5?列表的排序..............................104
6-5-1顛倒排序reverse ( ) ....................... 104
6-5-2 sort( )排序............... ..................... 105
6-5-3 sorted( )排序................... ............. 106
6-6?進階列表操作...........................107
6-6-1 index( ) .......................................... 107
6-6-2 count( ) ......................................... . 108
6-7?列表內含列表...........................108
6-7-1再談append( ) .. ............................. 109
6-7-2 extend( ) ........................................ 110
6 -7-3再看二維列表............................... 110
6-8?列表的賦值與切片複製..............111
6-8-1列表賦值........................... .............111
6-8-2地址的概念............................ ....... 112
6-8-3列表的切片複製........................... 113
6-8-4淺拷貝與深拷貝........................... 114
6-9?再談字符串......... .....................115
6-9-1字符串的索引................... ............ 115
6-9-2字符串切片............................. ...... 115
6-9-3函數或方法................................... 116
6-9-4將字符串轉成列表....................... 116
6-9-5切片賦值的應用..... ...................... 117
6-9-6使用split( )分割字符串............... 117
6-9-7列表元素的組合
6-9-8字符串的其他方法....................... 118
6-10? in和not in表達式..................118
6-11? is和is not表達式.................. 119
6-11-1整數變量在內存地址的觀察...... 120
6-11-2將is和is not表達式應用於整數
變量.............. .............................. 120
6-11-3將is和is not表達式應用於列表
變量... ......................................... 121
6-11-4將is應用於None ....................... 121
6-12? enumerate對象.................. ..122
6-13?專題——建立大型列表/用戶賬號
? ? ?管理系統/文件加密................123
6-13-1製作大型的列表數據............... 123
6-13-2用戶賬號管理系統.................. 123
6-13-3文件加密..................................... 124
習題................................................. .......... 124
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。