|
Python程序設(shè)計(jì)與算法教案 01 課程簡(jiǎn)介 課程學(xué)分:4 ; 面向?qū)I(yè):計(jì)算機(jī)、電子工程、信息管理、電子商務(wù)等專業(yè) 課程性質(zhì):專業(yè)必修課程 程序設(shè)計(jì)是計(jì)算機(jī)、電子信息、工商管理等相關(guān)專業(yè)的必修課程。Python 語(yǔ)言是一種解釋型、面向?qū)ο蟮挠?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,廣泛用于計(jì)算機(jī)程序設(shè)計(jì)教學(xué)語(yǔ)言、系統(tǒng)管理編程腳本語(yǔ)言、科學(xué)計(jì)算等,特別適用于快速的應(yīng)用程序開(kāi)發(fā)。Python 編程語(yǔ)言廣受開(kāi)發(fā)者的喜愛(ài),并被列入 LAMP(Linux、Apache、MySQL 以及 Python/Perl/PHP),已經(jīng)成為最受歡迎的程序設(shè)計(jì)語(yǔ)言之一。 本課程目的是使學(xué)生具備:通過(guò) Python 程序設(shè)計(jì)語(yǔ)言進(jìn)行項(xiàng)目開(kāi)發(fā)的基本思路、知識(shí)和能力。 本課程主要學(xué)習(xí) Python 語(yǔ)言的語(yǔ)言基礎(chǔ)知識(shí),以及使用 Python 語(yǔ)言的實(shí)際開(kāi)發(fā)應(yīng)用實(shí)例。 理論與實(shí)踐相結(jié)合,通過(guò)大量的實(shí)例,學(xué)習(xí)程序設(shè)計(jì)的基本原理,使學(xué)生不僅掌握理論知識(shí),同時(shí)掌握大量程序設(shè)計(jì)的實(shí)用案例。 作業(yè) 針對(duì)教學(xué)進(jìn)度表中所列的重點(diǎn)知識(shí),布置《Python 程序設(shè)計(jì)導(dǎo)論與算法基礎(chǔ)教程(第 2 版)》中的習(xí)題測(cè)試(選擇題、填空題、思考題、實(shí)踐題)以加強(qiáng)理解。 考核方式和成績(jī)?cè)u(píng)定 本課程為考試課。1. 課程考核方式:上機(jī)網(wǎng)考; 2. 成績(jī)組成:平時(shí)成績(jī) 20%(課堂提問(wèn)+書面作業(yè)+上機(jī)實(shí)踐),期中成績(jī) 30%,期末成績(jī) 50%。 02 教案
03 教學(xué)學(xué)時(shí)分配(54/72/80學(xué)時(shí)大綱) 80學(xué)時(shí)
72學(xué)時(shí)
54學(xué)時(shí)
04 配套教材
掃碼,微店優(yōu)惠購(gòu)書 05 內(nèi)容簡(jiǎn)介 本書集教材、練習(xí)冊(cè)、上機(jī)指導(dǎo)于一體,闡述Python語(yǔ)言的基礎(chǔ)知識(shí),以及使用Python語(yǔ)言的開(kāi)發(fā)應(yīng)用實(shí)例,具體內(nèi)容包括Python概述,Python語(yǔ)言基礎(chǔ),程序流程控制,常用內(nèi)置數(shù)據(jù)類型,序列數(shù)據(jù)類型,輸入和輸出,錯(cuò)誤和異常處理,函數(shù)、類和對(duì)象,模塊和客戶端,算法與數(shù)據(jù)結(jié)構(gòu)基礎(chǔ),圖形用戶界面,圖形繪制,數(shù)值日期和時(shí)間處理,字符串和文本處理,文件、數(shù)據(jù)庫(kù)訪問(wèn),網(wǎng)絡(luò)和Web編程,多線程編程以及系統(tǒng)管理等。 05 視頻介紹 06 20個(gè)完整實(shí)訓(xùn)案例 CS1 安裝和使用面向科學(xué)計(jì)算的Anaconda CS2 使用Python圖像處理庫(kù)Pillow處理圖像文件 CS3 使用嵌套循環(huán)實(shí)現(xiàn)圖像處理算法 CS4 科學(xué)計(jì)算和數(shù)據(jù)分析 CS5 猜單詞游戲 CS6 21點(diǎn)撲克牌游戲 CS7 使用調(diào)試器調(diào)試Python程序 CS8 井字棋(Tic Tac Toe)游戲 CS9 文本相似度比較分析 CS10 基于模塊的庫(kù)存管理系統(tǒng) CS11 程序運(yùn)行時(shí)間度量分析 CS12 簡(jiǎn)易圖形用戶界面計(jì)算器 CS13 漢諾塔問(wèn)題求解動(dòng)畫 CS14 使用pandas進(jìn)行數(shù)據(jù)分析和處理 CS15 NLTK與自然語(yǔ)言處理 CS16 百度音樂(lè)批量下載器 CS17 基于數(shù)據(jù)庫(kù)和GUI的教務(wù)管理系統(tǒng) CS18 網(wǎng)絡(luò)爬蟲應(yīng)用案例 CS19 文本統(tǒng)計(jì)并行處理 CS20 簡(jiǎn)易圖形用戶界面壓縮軟件 06 目錄 上下滾動(dòng)查看 ↓ 第1章Python概述 1.1初識(shí)Python語(yǔ)言 1.1.1Python語(yǔ)言簡(jiǎn)介 1.1.2Python語(yǔ)言的特點(diǎn) 1.1.3Python語(yǔ)言的應(yīng)用范圍 1.2Python語(yǔ)言版本和開(kāi)發(fā)環(huán)境 1.2.1Python語(yǔ)言的版本 1.2.2Python語(yǔ)言的實(shí)現(xiàn) 1.2.3Python語(yǔ)言的集成開(kāi)發(fā)環(huán)境 1.3下載和安裝Python 1.3.1下載Python 1.3.2安裝Python 1.3.3安裝和管理Python擴(kuò)展包 1.4使用Python解釋器解釋執(zhí)行Python程序 1.4.1運(yùn)行Python解釋器 1.4.2運(yùn)行Python集成開(kāi)發(fā)環(huán)境 1.5使用文本編輯器和命令行編寫和執(zhí)行Python源文件程序 1.5.1編寫輸出“Hello,World!”的程序 1.5.2輸出“Hello,World!”程序的源代碼分析 1.5.3運(yùn)行Python源代碼程序 1.5.4命令行參數(shù) 1.6使用集成開(kāi)發(fā)環(huán)境IDLE編寫和執(zhí)行Python源文件程序 1.6.1使用IDLE編寫程序 1.6.2使用IDLE編輯程序 1.7在線幫助和相關(guān)資源 1.7.1Python交互式幫助系統(tǒng) 1.7.2Python文檔 1.7.3Python官網(wǎng) 1.7.4Python擴(kuò)展庫(kù)索引 1.8復(fù)習(xí)題 1.9上機(jī)實(shí)踐 1.10案例研究:安裝和使用其他Python環(huán)境 第2章Python語(yǔ)言基礎(chǔ) 2.1Python程序概述 2.1.1引例 2.1.2Python程序的構(gòu)成 2.2Python對(duì)象和引用 2.2.1Python對(duì)象概述 2.2.2使用字面量創(chuàng)建實(shí)例對(duì)象 2.2.3使用類對(duì)象創(chuàng)建實(shí)例對(duì)象 2.2.4數(shù)據(jù)類型 2.2.5變量和對(duì)象的引用 2.2.6Python是動(dòng)態(tài)類型語(yǔ)言 2.2.7Python是強(qiáng)類型語(yǔ)言 2.2.8對(duì)象內(nèi)存示意圖 2.2.9對(duì)象的值比較和引用判別 2.2.10不可變對(duì)象和可變對(duì)象 2.3標(biāo)識(shí)符及其命名規(guī)則 2.3.1標(biāo)識(shí)符 2.3.2保留關(guān)鍵字 2.3.3Python預(yù)定義標(biāo)識(shí)符 2.3.4命名規(guī)則 2.4變量和賦值語(yǔ)句 2.4.1變量的聲明和賦值 2.4.2鏈?zhǔn)劫x值語(yǔ)句 2.4.3復(fù)合賦值語(yǔ)句 2.4.4刪除變量 2.4.5序列解包賦值 2.4.6常量 2.5表達(dá)式和運(yùn)算符 2.5.1表達(dá)式的組成 2.5.2表達(dá)式的書寫規(guī)則 2.5.3運(yùn)算符概述 2.5.4Python運(yùn)算符 2.6語(yǔ)句 2.6.1Python語(yǔ)句 2.6.2Python語(yǔ)句的書寫規(guī)則 2.6.3復(fù)合語(yǔ)句及其縮進(jìn)書寫規(guī)則 2.6.4注釋語(yǔ)句 2.6.5空語(yǔ)句 2.7函數(shù)和模塊 2.7.1函數(shù)的創(chuàng)建和調(diào)用 2.7.2內(nèi)置函數(shù) 2.7.3模塊函數(shù) 2.7.4函數(shù)API 2.8類和對(duì)象 2.8.1創(chuàng)建類對(duì)象 2.8.2實(shí)例對(duì)象的創(chuàng)建和調(diào)用 2.9模塊和包 2.10復(fù)習(xí)題 2.11上機(jī)實(shí)踐 2.12案例研究:使用Pillow庫(kù)處理圖像文件 第3章程序流程控制 3.1順序結(jié)構(gòu) 3.2選擇結(jié)構(gòu) 3.2.1分支結(jié)構(gòu)的形式 3.2.2單分支結(jié)構(gòu) 3.2.3雙分支結(jié)構(gòu) 3.2.4多分支結(jié)構(gòu) 3.2.5if語(yǔ)句的嵌套 3.2.6if語(yǔ)句的典型示例代碼 3.2.7選擇結(jié)構(gòu)綜合舉例 3.3循環(huán)結(jié)構(gòu) 3.3.1可迭代對(duì)象 3.3.2range對(duì)象 3.3.3for循環(huán) 3.3.4while循環(huán) 3.3.5循環(huán)的嵌套 3.3.6break語(yǔ)句 3.3.7continue語(yǔ)句 3.3.8死循環(huán) 3.3.9else子句 3.3.10enumerate()函數(shù)和循環(huán) 3.3.11zip()函數(shù)和循環(huán) 3.3.12map()函數(shù)和循環(huán) 3.3.13循環(huán)語(yǔ)句的典型示例代碼 3.3.14循環(huán)結(jié)構(gòu)綜合舉例 3.4復(fù)習(xí)題 3.5上機(jī)實(shí)踐 3.6案例研究:使用嵌套循環(huán)實(shí)現(xiàn)圖像處理算法 第4章常用內(nèi)置數(shù)據(jù)類型 4.1Python內(nèi)置數(shù)據(jù)類型概述 4.1.1數(shù)值數(shù)據(jù)類型 4.1.2序列數(shù)據(jù)類型 4.1.3集合數(shù)據(jù)類型 4.1.4字典數(shù)據(jù)類型 4.1.5NoneType、NotImplementedType和EllipsisType 4.1.6其他數(shù)據(jù)類型 4.2int類型 4.2.1整型字面量 4.2.2int對(duì)象 4.2.3int對(duì)象的方法 4.2.4整數(shù)的運(yùn)算 4.3float類型 4.3.1浮點(diǎn)類型字面量 4.3.2float對(duì)象 4.3.3float對(duì)象的方法 4.3.4浮點(diǎn)數(shù)的運(yùn)算 4.4complex類型 4.4.1復(fù)數(shù)類型字面量 4.4.2complex對(duì)象 4.4.3complex對(duì)象的屬性和方法 4.4.4復(fù)數(shù)的運(yùn)算 4.5bool類型 4.5.1布爾值字面量 4.5.2bool對(duì)象 4.5.3邏輯運(yùn)算符 4.6str類型 4.6.1字符串字面量 4.6.2字符串編碼 4.6.3轉(zhuǎn)義字符 4.6.4str對(duì)象 4.6.5str對(duì)象的屬性和方法 4.6.6字符串的運(yùn)算 4.6.7對(duì)象轉(zhuǎn)換為字符串 4.6.8字符串的格式化 4.6.9格式化字符串變量 4.7比較關(guān)系運(yùn)算和條件表達(dá)式 4.7.1條件表達(dá)式 4.7.2關(guān)系和測(cè)試運(yùn)算符 4.8算術(shù)運(yùn)算符和位運(yùn)算符 4.8.1算術(shù)運(yùn)算符 4.8.2位運(yùn)算符 4.9混合運(yùn)算和數(shù)值類型轉(zhuǎn)換 4.9.1隱式轉(zhuǎn)換 4.9.2顯式轉(zhuǎn)換 4.10內(nèi)置標(biāo)準(zhǔn)數(shù)學(xué)函數(shù) 4.10.1內(nèi)置數(shù)學(xué)運(yùn)算函數(shù) 4.10.2數(shù)制轉(zhuǎn)換函數(shù) 4.11復(fù)習(xí)題 4.12上機(jī)實(shí)踐 4.13案例研究:科學(xué)計(jì)算和數(shù)據(jù)分析 第5章序列數(shù)據(jù)類型 5.1Python序列數(shù)據(jù)概述 5.1.1數(shù)組 5.1.2Python內(nèi)置的序列數(shù)據(jù)類型 5.2序列數(shù)據(jù)的基本操作 5.2.1序列的長(zhǎng)度、最大值、最小值、求和 5.2.2序列的索引訪問(wèn)操作 5.2.3序列的切片操作 5.2.4序列的連接和重復(fù)操作 5.2.5序列的成員關(guān)系操作 5.2.6序列的比較運(yùn)算操作 5.2.7序列的排序操作 5.2.8內(nèi)置函數(shù)all()和any() 5.2.9序列的拆分 5.3元組 5.3.1使用元組字面量創(chuàng)建元組實(shí)例對(duì)象 5.3.2使用tuple對(duì)象創(chuàng)建元組實(shí)例對(duì)象 5.3.3元組的序列操作 5.4列表 5.4.1使用列表字面量創(chuàng)建列表實(shí)例對(duì)象 5.4.2使用list對(duì)象創(chuàng)建列表實(shí)例對(duì)象 5.4.3列表的序列操作 5.4.4list對(duì)象的方法 5.4.5列表解析表達(dá)式 5.5字符串 5.5.1字符串的序列操作 5.5.2字符串編碼 5.5.3字符串的格式化 5.6字節(jié)序列 5.6.1bytes常量 5.6.2創(chuàng)建bytes對(duì)象 5.6.3創(chuàng)建bytearray對(duì)象 5.6.4bytes和bytearray的序列操作 5.6.5字節(jié)編碼和解碼 5.7復(fù)習(xí)題 5.8上機(jī)實(shí)踐 5.9案例研究:猜單詞游戲 第6章輸入和輸出 6.1輸入和輸出概述 6.2命令行參數(shù) 6.2.1sys.a(chǎn)rgv與命令行參數(shù) 6.2.2argparse模塊和命令行參數(shù)解析 6.3標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出函數(shù) 6.3.1輸入和輸出函數(shù) 6.3.2交互式用戶輸入 6.3.3運(yùn)行時(shí)提示輸入密碼 6.4文件和文件對(duì)象 6.4.1文件對(duì)象和open()函數(shù) 6.4.2文件的打開(kāi)、寫入、讀取和關(guān)閉 6.4.3with語(yǔ)句和上下文管理協(xié)議 6.5標(biāo)準(zhǔn)輸入、輸出和錯(cuò)誤流 6.5.1標(biāo)準(zhǔn)輸入、輸出和錯(cuò)誤流文件對(duì)象 6.5.2讀取任意長(zhǎng)度的輸入流 6.5.3標(biāo)準(zhǔn)輸入、輸出和錯(cuò)誤流重定向 6.6重定向和管道 6.6.1重定向標(biāo)準(zhǔn)輸出到一個(gè)文件 6.6.2重定向文件到標(biāo)準(zhǔn)輸入 6.6.3管道 6.6.4過(guò)濾器 6.7復(fù)習(xí)題 6.8上機(jī)實(shí)踐 6.9案例研究: 21點(diǎn)撲克牌游戲 第7章錯(cuò)誤和異常處理 7.1程序的錯(cuò)誤 7.1.1語(yǔ)法錯(cuò)誤 7.1.2運(yùn)行時(shí)錯(cuò)誤 7.1.3邏輯錯(cuò)誤 7.2異常處理 7.2.1異常處理概述 7.2.2內(nèi)置的異常類 7.2.3引發(fā)異常 7.2.4捕獲處理異常機(jī)制概述 7.2.5Python虛擬機(jī)捕獲處理異常 7.2.6使用try…except…else…finally語(yǔ)句捕獲處理異常 7.2.7捕獲異常的順序 7.2.8finally塊和發(fā)生異常后的處理 7.2.9自定義異常類 7.3斷言處理 7.3.1斷言處理概述 7.3.2assert語(yǔ)句和AssertionError類 7.3.3啟用/禁用斷言 7.4程序的基本調(diào)試方法 7.4.1語(yǔ)法錯(cuò)誤的調(diào)試 7.4.2運(yùn)行時(shí)錯(cuò)誤的調(diào)試 7.4.3邏輯錯(cuò)誤的調(diào)試 7.5使用logging模塊輸入日志 7.5.1logging模塊概述 7.5.2logging的配置和使用 7.6復(fù)習(xí)題 7.7上機(jī)實(shí)踐 7.8案例研究:使用調(diào)試器調(diào)試Python程序 第8章函數(shù)和函數(shù)式編程 8.1函數(shù)概述 8.1.1函數(shù)的基本概念 8.1.2函數(shù)的功能 8.1.3Python中函數(shù)的分類 8.2函數(shù)的聲明和調(diào)用 8.2.1函數(shù)對(duì)象的創(chuàng)建 8.2.2函數(shù)的調(diào)用 8.2.3函數(shù)的副作用 8.3參數(shù)的傳遞 8.3.1形式參數(shù)和實(shí)際參數(shù) 8.3.2形式參數(shù)變量和對(duì)象引用傳遞 8.3.3傳遞不可變對(duì)象的引用 8.3.4傳遞可變對(duì)象的引用 8.3.5可選參數(shù) 8.3.6位置參數(shù)和命名參數(shù) 8.3.7可變參數(shù) 8.3.8強(qiáng)制命名參數(shù) 8.3.9參數(shù)類型檢查 8.4函數(shù)的返回值 8.4.1return語(yǔ)句和函數(shù)返回值 8.4.2多條return語(yǔ)句 8.4.3返回多個(gè)值 8.5變量的作用域 8.5.1全局變量 8.5.2局部變量 8.5.3全局語(yǔ)句global 8.5.4非局部語(yǔ)句nonlocal 8.5.5類成員變量 8.5.6輸出局部變量和全局變量 8.6遞歸函數(shù) 8.6.1遞歸函數(shù)的定義 8.6.2遞歸函數(shù)的原理 8.6.3編寫遞歸函數(shù)時(shí)需要注意的問(wèn)題 8.6.4遞歸函數(shù)的應(yīng)用:最大公約數(shù) 8.6.5遞歸函數(shù)的應(yīng)用:漢諾塔 8.7內(nèi)置函數(shù)的使用 8.7.1內(nèi)置函數(shù)一覽 8.7.2eval()函數(shù) 8.7.3exec()函數(shù) 8.7.4compile()函數(shù) 8.8Python函數(shù)式編程基礎(chǔ) 8.8.1作為對(duì)象的函數(shù) 8.8.2高階函數(shù) 8.8.3map()函數(shù) 8.8.4filter()函數(shù) 8.8.5Lambda表達(dá)式和匿名函數(shù) 8.8.6operator模塊和操作符函數(shù) 8.8.7functools.reduce()函數(shù) 8.8.8偏函數(shù) 8.8.9sorted()函數(shù) 8.8.10函數(shù)裝飾器 8.9復(fù)習(xí)題 8.10上機(jī)實(shí)踐 8.11案例研究:井字棋游戲 第9章面向?qū)ο蟮某绦蛟O(shè)計(jì) 9.1面向?qū)ο蟾拍?/p> 9.1.1對(duì)象的定義 9.1.2封裝 9.1.3繼承 9.1.4多態(tài)性 9.2類對(duì)象和實(shí)例對(duì)象 9.2.1類對(duì)象 9.2.2實(shí)例對(duì)象 9.3屬性 9.3.1實(shí)例對(duì)象屬性 9.3.2類對(duì)象屬性 9.3.3私有屬性和公有屬性 9.3.4@property裝飾器 9.3.5特殊屬性 9.3.6自定義屬性 9.4方法 9.4.1對(duì)象實(shí)例方法 9.4.2靜態(tài)方法 9.4.3類方法 9.4.4__init__()方法和__new__()方法 9.4.5__del__()方法 9.4.6私有方法與公有方法 9.4.7方法的重載 9.5繼承 9.5.1派生類 9.5.2查看繼承的層次關(guān)系 9.5.3類成員的繼承和重寫 9.6對(duì)象的特殊方法 9.6.1對(duì)象的特殊方法概述 9.6.2運(yùn)算符重載與對(duì)象的特殊方法 9.6.3@functools.total_ordering裝飾器 9.6.4__call__()方法和可調(diào)用對(duì)象 9.7對(duì)象的引用、淺拷貝和深拷貝 9.7.1對(duì)象的引用 9.7.2對(duì)象的淺拷貝 9.7.3對(duì)象的深拷貝 9.8可迭代對(duì)象:迭代器和生成器 9.8.1可迭代對(duì)象 9.8.2迭代器 9.8.3迭代器協(xié)議 9.8.4可迭代對(duì)象的迭代:iter()函數(shù)和next()函數(shù) 9.8.5可迭代對(duì)象的迭代:for語(yǔ)句 9.8.6自定義可迭代對(duì)象和迭代器 9.8.7生成器函數(shù) 9.8.8反向迭代:reversed迭代器 9.8.9生成器表達(dá)式 9.8.10range可迭代對(duì)象 9.8.11map迭代器和itertools.starmap迭代器 9.8.12filter迭代器和itertools.filterfalse迭代器 9.8.13zip迭代器和itertools.zip_longest迭代器 9.8.14enumerate迭代器 9.8.15無(wú)窮序列迭代器itertools.count、cycle和repeat 9.8.16累計(jì)迭代器itertools.a(chǎn)ccumulate 9.8.17級(jí)聯(lián)迭代器itertools.chain 9.8.18選擇壓縮迭代器itertools.compress 9.8.19截取迭代器itertools.dropwhile和takewhile 9.8.20切片迭代器itertools.islice 9.8.21分組迭代器itertools.groupby 9.8.22返回多個(gè)迭代器itertools.tee 9.8.23組合迭代器itertools.combinations和combinations_with_replacement 9.8.24排列迭代器itertools.permutations 9.8.25笛卡兒積迭代器itertools.product 9.9自定義類應(yīng)用舉例 9.9.1Color類 9.9.2Histogram類 9.10復(fù)習(xí)題 9.11上機(jī)實(shí)踐 9.12案例研究:文本相似度比較分析 第10章模塊和客戶端 10.1模塊化程序設(shè)計(jì)的概念 10.1.1模塊化程序設(shè)計(jì) 10.1.2模塊的API 10.1.3模塊的實(shí)現(xiàn) 10.1.4模塊的客戶端 10.1.5模塊化程序設(shè)計(jì)的優(yōu)越性 10.2模塊的設(shè)計(jì)和實(shí)現(xiàn) 10.2.1模塊設(shè)計(jì)的一般原則 10.2.2API設(shè)計(jì) 10.2.3創(chuàng)建模塊 10.2.4模塊的私有函數(shù) 10.2.5模塊的測(cè)試代碼 10.2.6編寫模塊文檔字符串 10.2.7按字節(jié)編譯的.pyc文件 10.3模塊的導(dǎo)入和使用 10.3.1導(dǎo)入模塊和使用模塊 10.3.2導(dǎo)入模塊中的成員 10.3.3重新加載模塊 10.3.4動(dòng)態(tài)導(dǎo)入模塊 10.4包 10.4.1包的概念 10.4.2創(chuàng)建包 10.4.3包的導(dǎo)入和使用 10.5模塊的導(dǎo)入順序 10.5.1導(dǎo)入模塊時(shí)的搜索順序 10.5.2模塊搜索路徑 10.5.3dir()函數(shù) 10.6名稱空間與名稱查找順序 10.6.1名稱空間概述 10.6.2名稱查找順序 10.6.3頂層模塊和__name__變量 10.6.4Python解釋器 10.6.5全局名稱空間 10.6.6局部名稱空間 10.6.7類和對(duì)象名稱空間 10.7復(fù)習(xí)題 10.8上機(jī)實(shí)踐 10.9案例研究:基于模塊的庫(kù)存管理系統(tǒng) 第11章算法與數(shù)據(jù)結(jié)構(gòu)基礎(chǔ) 11.1算法及其性能分析 11.1.1算法概述 11.1.2算法的時(shí)間復(fù)雜度分析 11.1.3增長(zhǎng)量級(jí) 11.1.4算法的空間復(fù)雜度分析 11.2查找算法 11.2.1順序查找法 11.2.2二分查找法 11.2.3Python語(yǔ)言提供的查找算法 11.3排序算法 11.3.1冒泡排序法 11.3.2選擇排序法 11.3.3插入排序法 11.3.4歸并排序法 11.3.5快速排序法 11.3.6Python語(yǔ)言提供的排序算法 11.4常用數(shù)據(jù)結(jié)構(gòu) 11.4.1數(shù)據(jù)結(jié)構(gòu)概述 11.4.2常用數(shù)據(jù)結(jié)構(gòu)概述 11.4.3Python中的collections模塊 11.5數(shù)組 11.5.1列表和數(shù)組 11.5.2array.a(chǎn)rray對(duì)象和數(shù)組 11.6棧和隊(duì)列 11.6.1棧的實(shí)現(xiàn):使用列表 11.6.2deque對(duì)象 11.6.3deque作為棧 11.6.4deque作為隊(duì)列 11.7集合 11.7.1集合的定義 11.7.2集合解析表達(dá)式 11.7.3判斷集合元素是否存在 11.7.4集合的運(yùn)算:并集、交集、差集和對(duì)稱差集 11.7.5集合的比較運(yùn)算:相等、子集和超集 11.7.6集合的長(zhǎng)度、最大值、最小值、元素和 11.7.7可變集合的方法 11.8字典 11.8.1對(duì)象的哈希值 11.8.2字典的定義 11.8.3字典的訪問(wèn)操作 11.8.4字典的視圖對(duì)象 11.8.5字典的遍歷 11.8.6字典解析表達(dá)式 11.8.7判斷字典鍵是否存在 11.8.8字典對(duì)象的長(zhǎng)度和比較 11.8.9字典對(duì)象的方法 11.8.10defaultdict對(duì)象 11.8.11OrderedDict對(duì)象 11.8.12ChainMap對(duì)象 11.8.13Counter對(duì)象 11.9collections模塊的其他數(shù)據(jù)結(jié)構(gòu) 11.9.1namedtuple對(duì)象 11.9.2UserDict、UserList和UserString對(duì)象 11.10應(yīng)用舉例 11.10.1去除列表中的重復(fù)項(xiàng) 11.10.2基于字典的通訊錄 11.11復(fù)習(xí)題 11.12上機(jī)實(shí)踐 11.13案例研究:程序運(yùn)行時(shí)間度量分析 第12章圖形用戶界面 12.1圖形用戶界面概述 12.1.1tkinter 12.1.2其他GUI庫(kù)簡(jiǎn)介 12.2tkinter概述 12.2.1tkinter模塊 12.2.2圖形用戶界面的構(gòu)成 12.2.3框架和GUI應(yīng)用程序類 12.2.4tkinter主窗口 12.3幾何布局管理器 12.3.1pack幾何布局管理器 12.3.2grid幾何布局管理器 12.3.3place幾何布局管理器 12.4事件處理 12.4.1事件類型 12.4.2事件綁定 12.4.3事件處理函數(shù) 12.5常用組件 12.5.1Label 12.5.2LabelFrame 12.5.3Button 12.5.4Message 12.5.5Entry 12.5.6Text 12.5.7Radiobutton 12.5.8Checkbutton 12.5.9Listbox 12.5.10OptionMenu 12.5.11Scale 12.5.12Toplevel 12.5.13ttk子模塊控件 12.6對(duì)話框 12.6.1通用消息對(duì)話框 12.6.2文件對(duì)話框 12.6.3顏色選擇對(duì)話框 12.6.4通用對(duì)話框應(yīng)用舉例 12.6.5簡(jiǎn)單對(duì)話框 12.7菜單和工具欄 12.7.1創(chuàng)建主菜單 12.7.2創(chuàng)建上下文菜單 12.7.3菜單應(yīng)用舉例 12.8基于wxPython的圖形用戶界面設(shè)計(jì)入門 12.8.1wxPython概述 12.8.2安裝wxPython庫(kù) 12.8.3wxPython應(yīng)用程序的基本架構(gòu) 12.8.4使用wxPython開(kāi)發(fā)簡(jiǎn)易文本編輯器 12.9復(fù)習(xí)題 12.10上機(jī)實(shí)踐 12.11案例研究:簡(jiǎn)易圖形用戶界面計(jì)算器 第13章圖形繪制 13.1Python繪圖模塊概述 13.2基于tkinter的圖形繪制 13.2.1基于tkinter的畫布繪圖概述 13.2.2創(chuàng)建畫布對(duì)象 13.2.3繪制矩形 13.2.4繪制橢圓 13.2.5繪制圓弧 13.2.6繪制線條 13.2.7繪制多邊形 13.2.8繪制字符串 13.2.9應(yīng)用舉例:繪制函數(shù)圖形 13.3基于turtle模塊的海龜繪圖 13.3.1海龜繪圖概述 13.3.2turtle模塊概述 13.3.3繪制正方形 13.3.4繪制多邊形 13.3.5繪制圓形螺旋 13.3.6遞歸圖形 13.3.7海龜繪圖的應(yīng)用實(shí)例 13.4基于Matplotlib模塊的繪圖 13.4.1Matplotlib模塊概述 13.4.2安裝Matplotlib模塊 13.4.3使用Matplotlib模塊繪圖概述 13.4.4繪制函數(shù)曲線 13.4.5繪制多個(gè)圖形 13.4.6繪制直方圖 13.5復(fù)習(xí)題 13.6上機(jī)實(shí)踐 13.7案例研究:漢諾塔問(wèn)題求解動(dòng)畫 第14章數(shù)值日期和時(shí)間處理 14.1相關(guān)模塊概述 14.1.1數(shù)值處理的相關(guān)模塊 14.1.2日期和時(shí)間處理的相關(guān)模塊 14.2math模塊和數(shù)學(xué)函數(shù) 14.2.1math模塊的API 14.2.2math模塊應(yīng)用舉例 14.3cmath模塊和復(fù)數(shù)數(shù)學(xué)函數(shù) 14.4random模塊和隨機(jī)函數(shù) 14.4.1種子和隨機(jī)狀態(tài) 14.4.2隨機(jī)整數(shù) 14.4.3隨機(jī)序列 14.5數(shù)值運(yùn)算模塊NumPy 14.5.1數(shù)值運(yùn)算模塊的基本使用 14.5.2創(chuàng)建數(shù)組 14.5.3處理數(shù)組 14.5.4數(shù)組應(yīng)用舉例 14.6日期和時(shí)間處理 14.6.1相關(guān)術(shù)語(yǔ) 14.6.2時(shí)間對(duì)象 14.6.3測(cè)量程序運(yùn)行時(shí)間 14.6.4日期對(duì)象 14.6.5獲取當(dāng)前日期時(shí)間 14.6.6日期時(shí)間格式化為字符串 14.6.7日期時(shí)間字符串解析為日期時(shí)間對(duì)象 14.7應(yīng)用舉例 14.7.1蒙特卡洛模擬:賭徒破產(chǎn)命運(yùn) 14.7.2使用隨機(jī)數(shù)估值圓周率 14.7.3程序運(yùn)行時(shí)間測(cè)量 14.8復(fù)習(xí)題 14.9上機(jī)實(shí)踐 14.10案例研究:使用pandas進(jìn)行數(shù)據(jù)分析和處理 第15章字符串和文本處理 15.1相關(guān)模塊概述 15.1.1字符串和文本處理的相關(guān)模塊 15.1.2字符串處理的常用方法 15.2字符串處理的常用操作 15.2.1字符串的類型判斷 15.2.2字符串的大小寫轉(zhuǎn)換 15.2.3字符串的填充、空白和對(duì)齊 15.2.4字符串的測(cè)試、查找和替換 15.2.5字符串的拆分和組合 15.2.6字符串的翻譯和轉(zhuǎn)換 15.2.7字符串應(yīng)用舉例 15.3正則表達(dá)式 15.3.1正則表達(dá)式語(yǔ)言概述 15.3.2正則表達(dá)式引擎 15.3.3普通字符和轉(zhuǎn)義字符 15.3.4字符類和預(yù)定義字符類 15.3.5邊界匹配符 15.3.6重復(fù)限定符 15.3.7匹配算法:貪婪和懶惰 15.3.8選擇分支 15.3.9分組和向后引用 15.3.10正則表達(dá)式的匹配模式 15.3.11常用正則表達(dá)式 15.4正則表達(dá)式模塊re 15.4.1匹配和搜索函數(shù) 15.4.2匹配選項(xiàng) 15.4.3正則表達(dá)式對(duì)象 15.4.4匹配對(duì)象 15.4.5匹配和替換 15.4.6分隔字符串 15.5正則表達(dá)式應(yīng)用舉例 15.5.1字符串包含驗(yàn)證 15.5.2字符串的查找和拆分 15.5.3字符串的替換和清除 15.5.4字符串的查找和截取 15.6應(yīng)用舉例 15.6.1文本統(tǒng)計(jì) 15.6.2基因預(yù)測(cè) 15.6.3字符串的簡(jiǎn)單加密和解密 15.7復(fù)習(xí)題 15.8上機(jī)實(shí)踐 15.9案例研究:NLTK與自然語(yǔ)言處理 第16章文件和數(shù)據(jù)交換 16.1文件操作相關(guān)模塊概述 16.2文本文件的讀取和寫入 16.2.1文本文件的寫入 16.2.2文本文件的讀取 16.2.3文本文件的編碼 16.3二進(jìn)制文件的讀取和寫入 16.3.1二進(jìn)制文件的寫入 16.3.2二進(jìn)制文件的讀取 16.4隨機(jī)文件訪問(wèn) 16.5內(nèi)存文件的操作 16.5.1StringIO和內(nèi)存文本文件的操作 16.5.2BytesIO和內(nèi)存二進(jìn)制文件的操作 16.6文件的壓縮和解壓縮 16.7CSV格式文件的讀取和寫入 16.7.1csv.reader對(duì)象和CSV文件的讀取 16.7.2csv.writer對(duì)象和CSV文件的寫入 16.7.3csv.DictReader對(duì)象和CSV文件的讀取 16.7.4csv.DictWriter對(duì)象和CSV文件的寫入 16.7.5CSV文件格式化參數(shù)和Dialect對(duì)象 16.8輸入重定向和管道 16.8.1FileInput對(duì)象 16.8.2fileinput模塊的函數(shù) 16.8.3輸入重定向 16.9對(duì)象序列化 16.9.1對(duì)象序列化概述 16.9.2pickle模塊和對(duì)象序列化 16.9.3json模塊和JSON格式數(shù)據(jù) 16.10復(fù)習(xí)題 16.11上機(jī)實(shí)踐 16.12案例研究:百度音樂(lè)批量下載器 第17章數(shù)據(jù)庫(kù)訪問(wèn) 17.1數(shù)據(jù)庫(kù)基礎(chǔ) 17.1.1數(shù)據(jù)庫(kù)的概念 17.1.2關(guān)系數(shù)據(jù)庫(kù) 17.2Python數(shù)據(jù)庫(kù)訪問(wèn)模塊 17.2.1通用數(shù)據(jù)庫(kù)訪問(wèn)模塊 17.2.2專用數(shù)據(jù)庫(kù)訪問(wèn)模塊 17.2.3SQLite數(shù)據(jù)庫(kù)和sqlite3模塊 17.3使用sqlite3模塊連接和操作SQLite數(shù)據(jù)庫(kù) 17.3.1訪問(wèn)數(shù)據(jù)庫(kù)的步驟 17.3.2創(chuàng)建數(shù)據(jù)庫(kù)和表 17.3.3數(shù)據(jù)庫(kù)表的插入、更新和刪除操作 17.3.4數(shù)據(jù)庫(kù)表的查詢操作 17.4使用SQLiteStudio查看和維護(hù)SQLite數(shù)據(jù)庫(kù) 17.5復(fù)習(xí)題 17.6上機(jī)實(shí)踐 17.7案例研究:基于數(shù)據(jù)庫(kù)和GUI的教務(wù)管理系統(tǒng) 第18章網(wǎng)絡(luò)編程和通信 18.1網(wǎng)絡(luò)編程的基本概念 18.1.1網(wǎng)絡(luò)基礎(chǔ)知識(shí) 18.1.2TCP/IP協(xié)議簡(jiǎn)介 18.1.3IP地址和域名 18.1.4統(tǒng)一資源定位器 18.2基于socket的網(wǎng)絡(luò)編程 18.2.1socket概述 18.2.2創(chuàng)建socket對(duì)象 18.2.3將服務(wù)器端socket綁定到指定地址 18.2.4服務(wù)器端socket開(kāi)始偵聽(tīng) 18.2.5連接和接收連接 18.2.6發(fā)送和接收數(shù)據(jù) 18.2.7簡(jiǎn)單TCP程序:EchoServer 18.2.8簡(jiǎn)單UDP程序:EchoServer 18.2.9UDP程序:Quote Server 18.3基于urllib的網(wǎng)絡(luò)編程 18.3.1打開(kāi)和讀取URL網(wǎng)絡(luò)資源 18.3.2創(chuàng)建Request對(duì)象 18.4基于http的網(wǎng)絡(luò)編程 18.5基于ftplib的網(wǎng)絡(luò)編程 18.5.1創(chuàng)建FTP對(duì)象 18.5.2創(chuàng)建FTP_TLS對(duì)象 18.6基于poplib和smtplib的網(wǎng)絡(luò)編程 18.6.1使用poplib接收郵件 18.6.2使用smtplib發(fā)送郵件 18.7復(fù)習(xí)題 18.8上機(jī)實(shí)踐 18.9案例研究:網(wǎng)絡(luò)爬蟲案例 第19章并行計(jì)算:進(jìn)程、線程和協(xié)程 19.1并行處理概述 19.1.1進(jìn)程、線程和協(xié)程 19.1.2Python語(yǔ)言與并行處理相關(guān)模塊 19.2基于線程的并發(fā)處理 19.2.1threading模塊概述 19.2.2使用Thread對(duì)象創(chuàng)建線程 19.2.3自定義派生于Thread的對(duì)象 19.2.4線程加入 19.2.5用戶線程和daemon線程 19.2.6Timer線程 19.2.7基于原語(yǔ)鎖的簡(jiǎn)單同步 19.2.8基于條件變量的同步和通信 19.2.9基于queue模塊中隊(duì)列的同步 19.2.10基于Event的同步和通信 19.3基于進(jìn)程的并行計(jì)算 19.3.1multiprocessing模塊概述 19.3.2創(chuàng)建和使用進(jìn)程 19.3.3進(jìn)程的數(shù)據(jù)共享 19.3.4進(jìn)程池 19.4基于線程池/進(jìn)程池的并發(fā)和并行任務(wù) 19.4.1concurrent.futures模塊概述 19.4.2使用ThreadPoolExecutor并發(fā)執(zhí)行任務(wù) 19.4.3使用ProcessPoolExecutor并發(fā)執(zhí)行任務(wù) 19.5基于asyncio的異步IO編程 19.5.1asyncio模塊概述 19.5.2創(chuàng)建協(xié)程對(duì)象 19.5.3創(chuàng)建任務(wù)對(duì)象 19.6應(yīng)用舉例 19.6.1使用Pool并行計(jì)算查找素?cái)?shù) 19.6.2使用ProcessPoolExecutor并行判斷素?cái)?shù) 19.6.3使用ThreadPoolExecutor多線程爬取網(wǎng)頁(yè) 19.7復(fù)習(xí)題 19.8上機(jī)實(shí)踐 19.9案例研究:文本統(tǒng)計(jì)并行處理 第20章系統(tǒng)管理 20.1系統(tǒng)管理相關(guān)模塊 20.2目錄、文件和磁盤的基本操作 20.2.1創(chuàng)建目錄 20.2.2臨時(shí)目錄和文件的創(chuàng)建 20.2.3切換和獲取當(dāng)前工作目錄 20.2.4目錄內(nèi)容列表 20.2.5文件通配符和glob.glob()函數(shù) 20.2.6遍歷目錄和os.walk()函數(shù) 20.2.7判斷文件/目錄是否存在 20.2.8測(cè)試文件類型 20.2.9文件的日期及大小 20.2.10文件和目錄的刪除 20.2.11文件和目錄的復(fù)制、重命名和移動(dòng) 20.2.12磁盤的基本操作 20.3執(zhí)行操作系統(tǒng)命令和運(yùn)行其他程序 20.3.1os.system()函數(shù) 20.3.2os.popen()函數(shù) 20.3.3subprocess模塊 20.4獲取終端的大小 20.5文件的壓縮和解壓縮 20.5.1shutil模塊支持的壓縮和解壓縮格式 20.5.2make_archive()函數(shù)和文件壓縮 20.5.3unpack_archive()函數(shù)和文件解壓縮 20.6configparser模塊和配置文件 20.6.1INI文件及INI文件格式 20.6.2ConfigParser對(duì)象和INI文件操作 20.7應(yīng)用舉例 20.7.1病毒掃描 20.7.2文件目錄樹(shù) 20.8復(fù)習(xí)題 20.9上機(jī)實(shí)踐 20.10案例研究:簡(jiǎn)易圖形用戶界面壓縮軟件 15 配套資源
|
|
|