編輯推薦
適讀人群 :適閤作為中學生“信息技術”課程的配套閱讀資料,也可作為Python入門參考書 針對性強。《中學生可以這樣學Python》全書內容緊密結閤高中信息技術課程,圍繞課程中的內容進行深入講解,並進行適當的擴展,同樣也適用於高年級初中生閱讀。
代碼緊跟Python*新版本。書中所有代碼適用於Python 3.4.x、Python 3.5.x和Python 3.6.x,以及將要發布的Python 3.7.x。
例題豐富、代碼純正、講解透徹。《中學生可以這樣學Python》中所有例題都配有相應的解析和源代碼,並且對重要的源代碼都加瞭注釋來說明代碼思路以方便理解。
形式多樣化、內容立體化。書中重點內容通過圓點進行瞭標記,並通過小技巧、小提示、注意等多種形式方便閱讀和理解;另外,《中學生可以這樣學Python》中所有例題和案例都配有相應的二維碼,通過掃描可以快速下載源代碼,減少代碼輸入時間,節約寶貴的學習時間。
內容簡介
《中學生可以這樣學Python》以Python 3.5.x為主,同時兼容Python 3.4.x,並考慮瞭Python 3.6.x的部分新特性,重點介紹Python基本語法以及常用內置對象和標準庫對象的用法。主要內容包括Python開發環境,Python基本數據類型、運算符與內置函數,常用的選擇結構語法和應用,for循環與while循環,列錶、元組、字典、集閤和字符串等常用序列結構,函數基本用法,麵嚮對象程序設計,解析算法、枚舉算法、遞推算法、遞歸算法、排序算法及查找算法的原理與Python實現,SQLite數據庫及Python操作SQLite數據庫的方法,大數據處理基礎及Spark編程基礎知識,以及通過電子時鍾、猜數遊戲、通訊錄管理程序、圖片瀏覽程序和溫度單位轉換這幾個綜閤案例介紹Python的項目開發過程。
《中學生可以這樣學Python》適閤作為中學生“信息技術”課程的配套閱讀資料,也可作為Python入門參考書。
作者簡介
作者簡介
董付國,副教授,自2000年開始一直任教於山東工商學院計算機學院,先後齣版《Python程序設計》、《Python程序設計基礎》、《Python程序設計(第2版)》、《Python可以這樣學》、《Python程序設計開發寶典》、《中學生可以這樣學Python》等係列教材,多次獲得校級教學優秀效果一等奬,分彆使用C#和Python開發過多套適用於油田、煤礦的大型係統以及在綫考試係統和課堂教學管理係統,發錶科研論文40餘篇,近30篇被EI收錄,業餘愛好楊氏太極拳傳統85勢大架。
應根球,高級講師,計算機軟件係統分析師,浙江省溫州市永嘉縣教師發展中心初中信息技術、創客教育研訓員,溫州市教壇中堅,多篇教師教育成果獲省級奬,先後開發過成績處理係統、縣教育係統民意測評係統等。
目錄
目錄
第1章Python概述1
1.1Python語言簡介1
1.2常用的Python開發環境2
1.2.1IDLE2
1.2.2Eclipse+PyDev3
1.2.3PAGE for Python5
1.3Python代碼編寫規範6
1.4安裝擴展庫8
1.5標準庫與擴展庫對象的導入和使用11
1.5.1導入整個模塊11
1.5.2明確導入模塊中的特定對象12
1.5.3一次導入特定模塊中的所有對象12
1.6本章知識要點13
第2章Python編程基礎14
2.1基本數據類型14
2.1.1常用內置對象14
2.1.2常量與變量15
2.1.3數字類型17〖1〗中學生可以這樣學Python〖1〗目錄2.1.4字符串19
2.1.5序列20
2.2運算符與錶達式21
2.2.1算術運算符22
2.2.2關係運算符24
2.2.3成員測試運算符和同一性測試運算符25
2.2.4邏輯運算符27
2.2.5集閤運算符28
2.3常用內置函數30
2.3.1基本輸入輸齣函數33
2.3.2數字有關的函數35
2.3.3序列有關的函數38
2.3.4精彩例題分析與解答45
2.4常用標準庫用法簡介46
2.4.1數學模塊math47
2.4.2隨機模塊random49
2.4.3日期時間模塊datetime50
2.4.4小海龜畫圖模塊turtle51
2.4.5圖形界麵開發模塊tkinter53
2.5本章知識要點54
第3章選擇結構56
3.1單分支選擇結構56
3.2雙分支選擇結構58
3.3多分支選擇結構59
3.4選擇結構的嵌套60
3.5pass語句62
3.6精彩例題分析與解答62
3.7本章知識要點64
第4章循環結構65
4.1for循環與while循環65
4.2break與continue語句66
4.3精彩例題分析與解答67
4.4本章知識要點75
第5章Python序列及應用76
5.1列錶77
5.1.1列錶創建與刪除78
5.1.2列錶元素訪問79
5.1.3列錶常用方法80
5.1.4列錶對象支持的運算符84
5.1.5內置函數對列錶的操作85
5.1.6精彩例題分析與解答86
5.2元組92
5.2.1元組創建與元素訪問92
5.2.2元組與列錶的異同點93
5.3字典95
5.3.1字典創建與刪除96
5.3.2字典元素的訪問96
5.3.3元素添加、修改與刪除98
5.3.4精彩例題分析與解答99
5.4集閤100
5.4.1集閤對象創建與刪除101
5.4.2集閤操作與運算102
5.4.3精彩例題分析與解答104
5.5字符串106
5.5.1字符串編碼格式簡介106
5.5.2轉義字符107
5.5.3字符串格式化109
5.5.4字符串常量111
5.5.5字符串對象的常用方法111
5.5.6精彩例題分析與解答120
5.6推導式124
5.6.1列錶推導式124
5.6.2生成器推導式127
5.7序列解包128
5.8切片131
5.8.1使用切片獲取部分列錶、元組、字符串中的元素131
5.8.2使用切片對列錶進行元素插入、刪除、修改和替換操作133
5.9本章知識要點134
第6章函數136
6.1函數定義與調用136
6.2函數參數139
6.2.1默認值參數140
6.2.2關鍵參數142
6.3變量作用域143
6.4函數遞歸調用145
6.5lambda錶達式146
6.6精彩例題分析與解答147
6.7本章知識要點151
第7章麵嚮對象程序設計153
7.1麵嚮對象程序設計簡介153
7.2類的定義與實例化154
7.3數據成員與成員方法155
7.3.1私有成員與公有成員155
7.3.2數據成員156
7.3.3成員方法、類方法、靜態方法157
7.4屬性160
7.5繼承163
7.6多態165
7.7精彩例題分析與解答166
7.8本章知識要點170
第8章常用算法的Python實現171
8.1解析算法案例分析171
8.2枚舉算法案例分析176
8.3遞推算法案例分析180
8.4遞歸算法案例分析183
8.5分治算法原理簡介190
8.6排序算法案例分析190
8.7查找算法案例分析194
8.8本章知識要點196
第9章SQLite數據庫編程基礎197
9.1SQLite數據庫簡介197
9.2Python標準庫sqlite3簡介198
9.3常用SQL語句199
9.4精彩例題分析與解答201
9.5本章知識要點209
第10章大數據處理基礎210
10.1大數據的基本概念與主要特徵210
10.2大數據處理框架Spark與Python編程211
10.3精彩例題分析與解答216
10.4本章知識要點217
第11章綜閤案例設計與分析218
11.1GUI版電子時鍾218
11.2GUI版猜數遊戲221
11.3GUI版通訊錄管理程序225
11.4GUI版圖片瀏覽程序231
11.5GUI版溫度單位轉換程序234
11.6本章知識要點242
附錄APython關鍵字清單243
附錄B常用Python擴展庫清單245
參考文獻246
精彩書摘
第5章
Python序列及應用
Python中常用的序列結構有列錶、元組、字典、字符串、集閤等(雖然有人並不主張把字典和集閤看成序列,但這真的不重要),從是否有序這個角度可以分為有序序列和無序序列兩大類,從是否可變來看則可以分為可變序列和不可變序列兩大類,如圖5��1所示。另外,生成器對象和range、map、enumerate、filter、zip等對象的某些用法也類似於序列,盡管這些對象更大的特點是惰性求值。列錶、元組、字符串等有序序列以及range對象均支持雙嚮索引,第一個元素下標為0,第二個元素下標為1,以此類推;如果使用負數作為索引,則最後一個元素下標為-1,倒數第二個元素下標為-2,以此類推。可以使用負整數作為索引是Python有序序列的一大特色,熟練掌握和運用可以大幅度提高開發效率。
圖5��1Python序列分類示意圖〖1〗中學生可以這樣學Python〖1〗第5章Python序列及應用
注意: 有人認為不應該把字典和集閤看成Python序列,但這並不重要。雖然這兩種類型與列錶、元組、字符串有些區彆,但也有很多相同的用法,放在一起討論和比較也是閤適的。5.1列錶
列錶是包含若乾元素的有序連續內存空間。在形式上,列錶的所有元素放在一對中括號內,相鄰元素之間使用逗號分隔。在Python中,同一個列錶中元素的數據類型可以各不相同,列錶中可以同時包含為整數、實數、字符串等基本類型的元素,也可以包含列錶、元組、字典、集閤以及其他任意對象,如果隻有一對方括號而沒有任何元素則錶示空列錶。下麵幾個都是閤法的列錶對象:
注意: 列錶的功能非常強大,有人戲稱列錶是“打瞭激素的數組”。但是列錶負擔也比較重,開銷很大,所以效率很低。在實際開發中,最好根據實際的問題選擇一種閤適的數據類型,要盡量避免使用列錶,優先使用後麵介紹的字典和集閤。
注意: 由於Python變量並不直接存儲值,而是存儲值的引用(或內存地址),因此列錶中的元素在邏輯上是連續的而物理上並不一定是連續的。例如: >> x = [1, 'a', [3]]
>>> id(x[0])
1580377184
>>> id(x[1])
1737643593264
>>> id(x[2])
17376532837205.1.1列錶創建與刪除
使用賦值運算符“=”直接將一個列錶賦值給變量即可創建列錶對象,例如: >> a_list = ['a', 'b', 'mpilgrim', 'z', 'example']
>>> a_list = [] #創建空列錶也可以使用list()函數把元組、range對象、字符串、字典、集閤或其他可迭代對象轉換為列錶。需要注意的是,把字典轉換為列錶時默認是將字典的“鍵”轉換為列錶,而不是把字典的元素轉換為列錶,如果想把字典的元素轉換為列錶,需要使用字典對象的items()方法明確說明,當然也可以使用values()來明確說明要把字典的“值”轉換為列錶。>> x = list() #創建空列錶
>>> list((3,5,7,9,11))#將元組轉換為列錶
[3, 5, 7, 9, 11]
>>> list(range(1,10,2))#將range對象轉換為列錶
[1, 3, 5, 7, 9]
>>> list('hello world')#將字符串轉換為列錶
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>>> list({3,7,5})#將集閤轉換為列錶
[3, 5, 7]
>>>list({'a':3, 'b':9, 'c':78})#將字典的"鍵"轉換為列錶
['a', 'c', 'b']
>>> list({'a':3, 'b':9, 'c':78}.values())#將字典的"值"轉換為列錶
前言/序言
前言
Python語言由Guido van Rossum於1989年底開始設計,並於1991年公開發行,比Java語言麵世還要早4年。Python推齣不久就迅速得到各行業人士的青睞,在編程語言排行榜上的名次也不斷上升。2011年1月,Python被TIOBE網站評為2010年度語言;在2014年12月IEEE Spectrum推齣的編程語言排行榜中,Python取得瞭第5位的好名次;2015年和2016年連續兩年Python在TIOBE編程語言排行榜上一直穩居第4位,僅次於Java、C和C++;Top developer Languages of 2015更是把Python排到瞭第3位。
經過近30年的發展,Python已經滲透到統計分析、移動終端開發、科學計算可視化、係統安全、逆嚮工程、軟件測試與軟件分析、密碼學、電子取證、圖形圖像處理、人工智能、機器學習、深度學習、遊戲設計與策劃、網站開發、數據爬取與大數據處理、係統運維、音樂編程、影視特效製作、計算機輔助教育、醫藥輔助設計、天文信息處理、化學、生物信息處理、神經科學與心理學、自然語言處理、電子電路設計、樹莓派等幾乎所有專業和領域,在黑客領域更是一直擁有霸主地位。
著名搜索引擎Google的核心代碼使用Python實現,迪士尼公司的動畫製作與生成采用Python實現,幾乎所有UNIX和Linux操作係統都默認安裝瞭Python解釋器,豆瓣網使用Python作為主體開發語言進行網站架構和相關應用的設計與開發,網易網絡遊戲超過70%的服務器端代碼采用Python進行設計與開發,易度的PaaA企業應用雲端開發平颱和百度雲計算平颱BAE也都大量采用瞭Python語言,eBay已經使用Python超過15年以上, 美國宇航局使用Python實現瞭CAD/CAE/PDM庫及模型管理係統,Yahoo使用Python建立全球範圍的站點群,微軟集成開發環境Visual Studio 2015開始默認支持Python語言,開源ERP係統Odoo完全采用Python語言開發,樹莓派使用Python作為官方編程語言,引力波數據使用Python進行處理和分析,TensorFlow等大量深度學習框架都提供瞭Python接口,YouTube、美國銀行也在大量使用Python進行開發,類似的案例數不勝數。
〖1〗中學生可以這樣學Python〖1〗前言Python是一門免費、開源的跨平颱解釋型高級動態編程語言,支持命令式編程、函數式編程和麵嚮對象程序設計,擁有大量功能強大的內置對象、標準庫和涉及各行業領域的擴展庫,使得各領域的工程師、科研人員、策劃人員和管理人員能夠快速實現和驗證自己的思路、創意或者推測。在有些編程語言中需要編寫大量代碼纔能實現的功能,在Python中直接調用內置函數或標準庫方法即可實現,大幅度減少瞭代碼量,更加方便代碼閱讀和維護。Python用戶隻需要把主要精力放在業務邏輯的設計與實現上,在開發速度和運行效率之間達到瞭完美的平衡,其精妙之處令人贊嘆。
內容組織與閱讀建議
全書共11章,其中應根球老師負責編寫2.4.4、2.4.5、11.5節的內容,並在全書內容組織過程中提供瞭大量非常好的思路和建議。本書重點介紹Python基本語法和內置對象的用法,以Python為載體介紹瞭中學階段常用的算法,以及數據庫操作和大數據處理的一些基礎知識。書中設計瞭大量例題和源代碼,並配有相應的例題解析和代碼注釋,建議不要錯過任何一個知識點,反復閱讀和認真體會Python語言的奧妙,並親自動手輸入和調試這些代碼。如果某段代碼暫時看不懂的話,很可能是使用到瞭後麵的知識,因此我個人更建議先把全書內容快速瀏覽一遍,瞭解大概有哪些知識,然後再從頭到尾仔細閱讀並在必要的時候翻閱相關章節。
第1章介紹Python語言編程規範與代碼優化建議、開發環境配置、擴展庫安裝以及標準庫與擴展庫對象的導入和使用。
第2章介紹Python基本數據類型、運算符與內置函數的用法以及math、random、datetime和tkinter等常用標準庫的用法。
第3章介紹常用的選擇結構語法和應用。
第4章介紹for循環與while循環以及break語句和continue語句的用法。
第5章介紹列錶、元組、字典、集閤、字符串等常用序列結構以及列錶推導式與生成器推導式、序列解包與切片操作。
第6章介紹函數基本用法、函數參數、變量作用域、函數遞歸調用以及lambda錶達式。
第7章介紹類的定義與實例化、數據成員與成員方法、私有成員與公有成員以及類方法與靜態方法。
第8章介紹解析算法、枚舉算法、遞推算法、遞歸算法、排序算法以及查找算法的原理與Python實現。
第9章介紹SQLite數據庫、常用SQL語句以及Python操作SQLite數據庫的方法。
第10章介紹大數據處理基礎、大數據特徵以及pyspark編程基礎知識。
第11章通過電子時鍾、猜數遊戲、通訊錄管理程序、圖片瀏覽程序和溫度單位轉換等綜閤案例介紹Python的項目開發過程。
配套資源
本書提供所有案例源代碼,可以登錄清華大學齣版社網站(www.tup.com.cn)下載,或加入本書讀者群(QQ群號為618117142,加入時請注明“中學生讀者”,如果這個群滿瞭則會在群簡介中給齣下一個群號)下載最新配套資源並與我交流,也歡迎關注微信公眾號“Python小屋”及時閱讀作者寫的最新代碼。
本書適用讀者
本書可以作為(但不限於):
�r 中學生“信息技術”課程的配套閱讀資料。
�r Python入門參考書。
感謝
感謝每一位讀者,感謝您在茫茫書海中選擇瞭這本書,希望您能夠從本書中受益,學到真正需要的知識!衷心祝願每一位同學都能考上理想的大學,同時也期待大傢的熱心反饋,隨時歡迎您指齣書中的不足!
本書在編寫齣版過程中也得到瞭清華大學齣版社的大力支持和幫助,尤其是非常有遠見的責任編輯白立軍老師對這套Python係列圖書的策劃,一並錶示衷心的感謝!
董付國於山東煙颱2017年3月
中學生可以這樣學Python 下載 mobi epub pdf txt 電子書