從Excel到Python:用Python輕松處理Excel數(shù)據(jù)_第1頁
從Excel到Python:用Python輕松處理Excel數(shù)據(jù)_第2頁
從Excel到Python:用Python輕松處理Excel數(shù)據(jù)_第3頁
從Excel到Python:用Python輕松處理Excel數(shù)據(jù)_第4頁
從Excel到Python:用Python輕松處理Excel數(shù)據(jù)_第5頁
已閱讀5頁,還剩248頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

從Excel到Python用Python輕松處理Excel數(shù)據(jù)目錄TOC\h\h第1章Python基礎(chǔ)——學(xué)習(xí)Python必知必會\h1.1什么是Python\h1.2為什么要學(xué)習(xí)用Python處理Excel表格\h1.3手把手教你安裝Python\h1.3.1下載Python\h1.3.2安裝Python\h1.3.3驗證是否安裝成功\h1.4安裝Python集成開發(fā)工具PyCharm\h1.4.1下載PyCharm\h1.4.2安裝PyCharm\h1.4.3設(shè)置PyCharm\h1.4.4創(chuàng)建項目\h1.5Python的輸出與輸入\h1.5.1輸出\h1.5.2輸入\h1.6Python的代碼注釋\h1.6.1單行注釋\h1.6.2多行注釋\h1.7Python對象詳解\h1.7.1類的定義\h1.7.2對象的身份\h1.7.3對象的類型\h1.7.4對象的值\h1.7.5對象的屬性\h1.7.6對象的方法\h1.7.7對象與變量\h1.8Python中的數(shù)字與字符串\h1.8.1數(shù)字\h1.8.2字符串\h1.9算術(shù)運算符\h1.9.1加(+)\h1.9.2減(-)\h1.9.3乘(*)\h1.9.4除(/)\h1.9.5取模(%)\h1.9.6冪(**)\h1.9.7取整數(shù)(//)\h1.10比較運算符\h1.10.1等于(==)\h1.10.2不等于(!=)\h1.10.3大于(>)\h1.10.4小于(<)\h1.10.5大于或等于(>=)\h1.10.6小于或等于(<=)\h1.11賦值運算符\h1.11.1賦值運算\h1.11.2累積式賦值運算\h1.12邏輯運算符\h1.12.1and(與)\h1.12.2or(或)\h1.12.3not(非)\h1.13成員運算符\h1.14格式化字符串\h1.14.1使用位置和關(guān)鍵字格式化字符串\h1.14.2數(shù)字格式設(shè)置\h1.14.3對齊設(shè)置\h1.15斷點調(diào)試\h第2章Python庫——第三方庫的安裝與學(xué)習(xí)\h2.1什么是模塊、包、庫\h2.2安裝Excel讀取庫xlrd\h2.3xlrd模塊導(dǎo)入\h2.4讀取Excel工作簿、工作表信息\h2.4.1讀取Excel工作簿\h2.4.2讀取Excel工作表\h2.5讀取Excel行、列、單元格信息\h2.6安裝Excel寫入庫xlwt\h2.7新建工作簿、新建工作表和將數(shù)據(jù)寫入單元格\h2.8安裝Excel修改庫xlutils\h2.9修改工作簿、工作表、單元格\h第3章Python流程控制——循環(huán)語句與分支語句\h3.1for循環(huán)語句\h3.1.1循環(huán)字符串\h3.1.2循環(huán)序列數(shù)\h3.1.3for循環(huán)語句應(yīng)用案例:批量新建工作簿\h3.1.4for嵌套循環(huán)語句\h3.1.5for嵌套循環(huán)語句應(yīng)用案例:制作九九乘法表\h3.2while循環(huán)語句\h3.2.1循環(huán)序列數(shù)\h3.2.2循環(huán)字符串\h3.2.3while循環(huán)語句應(yīng)用案例:批量新建工作表\h3.2.4while嵌套循環(huán)語句\h3.2.5while嵌套循環(huán)語句應(yīng)用案例:批量新建工作簿、工作表\h3.3if條件語句\h3.3.1if條件語句標(biāo)準(zhǔn)用法\h3.3.2if條件語句應(yīng)用案例:根據(jù)分?jǐn)?shù)判斷等級\h3.4if條件分支語句\h3.4.1if條件分支語句標(biāo)準(zhǔn)用法\h3.4.2if條件分支語句單行寫法\h3.4.3if條件分支語句應(yīng)用案例:對數(shù)字進行分類計數(shù)\h3.5if多條件分支語句\h3.5.1if多條件分支語句標(biāo)準(zhǔn)用法\h3.5.2if多條件分支語句應(yīng)用案例:對分?jǐn)?shù)進行多等級判斷\h3.6break語句\h3.6.1break在while循環(huán)語句中的應(yīng)用\h3.6.2break在for循環(huán)語句中的應(yīng)用\h3.6.3break語句應(yīng)用案例:標(biāo)記達標(biāo)時的首個月份\h3.7continue語句\h3.7.1continue在while循環(huán)中的應(yīng)用\h3.7.2continue在for循環(huán)中的應(yīng)用\h3.7.3continue語句應(yīng)用案例\h第4章Python有序?qū)ο蟆址幚砑夹g(shù)\h4.1字符串切片\h4.1.1單字符切片\h4.1.2多字符切片\h4.1.3字符串切片應(yīng)用案例:根據(jù)身份證號判斷性別\h4.2字符串統(tǒng)計\h4.2.1統(tǒng)計字符串長度\h4.2.2按條件統(tǒng)計字符串\h4.2.3字符串統(tǒng)計應(yīng)用案例:統(tǒng)計各等級出現(xiàn)的次數(shù)\h4.3字符串搜索\h4.3.1使用index函數(shù)搜索字符串位置\h4.3.2使用find函數(shù)搜索字符串位置\h4.3.3字符串搜索應(yīng)用案例:提取指定位置的信息\h4.4字符串替換\h4.4.1字符串替換方法\h4.4.2字符串替換應(yīng)用案例:整理不規(guī)范的分隔符\h4.5字符串拆分與合并\h4.5.1拆分字符串為列表\h4.5.2合并列表為字符串\h4.5.3字符串拆分與合并應(yīng)用案例:匯總多表中的不規(guī)范數(shù)據(jù)\h第5章Python有序?qū)ο蟆斜硖幚砑夹g(shù)\h5.1列表的創(chuàng)建與刪除\h5.2列表切片\h5.2.1單元素切片\h5.2.2多元素切片\h5.2.3列表切片應(yīng)用案例:按行對數(shù)據(jù)求平均值\h5.3列表元素的增加、刪除和修改\h5.3.1列表元素的修改\h5.3.2列表元素的增加\h5.3.3列表元素的刪除\h5.3.4列表綜合應(yīng)用案例:按行對分?jǐn)?shù)求和\h5.4列表操作符\h5.4.1列表操作符基礎(chǔ)\h5.4.2列表操作符應(yīng)用案例:按條件統(tǒng)計多工作表數(shù)據(jù)\h5.5列表推導(dǎo)式\h5.5.1標(biāo)準(zhǔn)列表推導(dǎo)式\h5.5.2列表推導(dǎo)式變異\h5.5.3嵌套列表推導(dǎo)式\h5.5.4條件列表推導(dǎo)式\h5.5.5列表推導(dǎo)式應(yīng)用案例1:自動匯總多工作表數(shù)據(jù)\h5.5.6列表推導(dǎo)式應(yīng)用案例2:匯總多工作簿數(shù)據(jù)\h5.6列表的轉(zhuǎn)換\h5.6.1類對象轉(zhuǎn)換list\h5.6.2反轉(zhuǎn)列表reverse\h5.6.3列表復(fù)制copy\h5.6.4列表組合zip\h5.6.5列表轉(zhuǎn)換應(yīng)用案例:給名單中的姓名添加序號\h5.7列表常用統(tǒng)計方式\h5.7.1常用統(tǒng)計函數(shù)1\h5.7.2列表統(tǒng)計應(yīng)用案例1:統(tǒng)計每個人全年工資信息\h5.7.3常用統(tǒng)計函數(shù)2\h5.7.4列表統(tǒng)計應(yīng)用案例2:按等級做計數(shù)統(tǒng)計\h第6章Python有序?qū)ο蟆M處理技術(shù)\h6.1元組的創(chuàng)建與刪除\h6.2元組的基本操作\h6.2.1元組的合并\h6.2.2元組的復(fù)制\h6.2.3元組的循環(huán)\h6.2.4類對象轉(zhuǎn)換\h6.2.5元組應(yīng)用案例:將單列數(shù)據(jù)轉(zhuǎn)換為多行多列數(shù)據(jù)\h6.3元組常用統(tǒng)計函數(shù)\h第7章Python無序?qū)ο蟆值涮幚砑夹g(shù)\h7.1字典的基礎(chǔ)操作\h7.1.1字典的創(chuàng)建與刪除\h7.1.2字典中鍵值的獲取\h7.2字典鍵值的修改、增加和刪除\h7.2.1字典鍵值的增加\h7.2.2字典鍵值的刪除\h7.2.3字典鍵值的修改\h7.2.4字典鍵值應(yīng)用案例1:提取各班最后一條記錄\h7.2.5字典鍵值應(yīng)用案例2:按姓名求總分與平均分\h7.3字典的轉(zhuǎn)換\h7.3.1類對象轉(zhuǎn)換dict\h7.3.2dict.fromkeys轉(zhuǎn)換法\h7.3.3字典轉(zhuǎn)換應(yīng)用案例:多列求唯一值\h7.4字典綜合應(yīng)用案例\h7.4.1字典綜合應(yīng)用案例1:獲取未完成名單\h7.4.2字典綜合應(yīng)用案例2:多工作簿數(shù)據(jù)合并\h7.4.3字典綜合應(yīng)用案例3:數(shù)據(jù)統(tǒng)計并分發(fā)至不同工作簿\h第8章Python無序?qū)ο蟆咸幚砑夹g(shù)\h8.1集合的創(chuàng)建與刪除\h8.2集合元素的添加與刪除\h8.2.1集合元素的添加\h8.2.2集合元素的刪除\h8.2.3集合元素的添加應(yīng)用案例:多列求唯一值\h8.3集合之間的大小比較\h8.3.1集合的比較運算\h8.3.2集合比較運算應(yīng)用案例:判斷指定的多個等級是否存在\h8.4集合的轉(zhuǎn)換\h8.4.1類對象轉(zhuǎn)換set\h8.4.2集合轉(zhuǎn)換應(yīng)用案例:獲取每個工作表中不重復(fù)的名單\h8.5集合的運算\h8.5.1并集運算\h8.5.2交集運算\h8.5.3差集運算\h8.5.4對稱差集運算\h8.5.5集合運算小結(jié)\h8.6集合運算應(yīng)用案例\h8.6.1集合的并集應(yīng)用案例:多表多列求唯一值\h8.6.2集合的交集應(yīng)用案例:多列求相同值\h8.6.3集合的差集應(yīng)用案例:根據(jù)達標(biāo)月份獲取不達標(biāo)月份\h第9章優(yōu)化代碼利器——Python自定義函數(shù)\h9.1自定義函數(shù)編寫規(guī)范\h9.1.1函數(shù)的定義\h9.1.2自定義函數(shù)的創(chuàng)建與調(diào)用\h9.1.3自定義函數(shù)應(yīng)用案例:平均函數(shù)的定義及應(yīng)用\h9.2必選參數(shù)的寫法及應(yīng)用\h9.2.1必選參數(shù)(位置參數(shù))\h9.2.2必選參數(shù)應(yīng)用案例:給號碼分段\h9.3可選參數(shù)的寫法及應(yīng)用\h9.3.1可選參數(shù)(默認(rèn)參數(shù))\h9.3.2可選參數(shù)應(yīng)用案例:模擬vlookup函數(shù)的應(yīng)用\h9.4關(guān)鍵字參數(shù)的寫法及應(yīng)用\h9.4.1關(guān)鍵字參數(shù)\h9.4.2關(guān)鍵字參數(shù)應(yīng)用案例:分類合并字符串\h9.5不定長參數(shù)的寫法及應(yīng)用\h9.5.1不定長參數(shù)1\h9.5.2不定長參數(shù)2\h9.5.3不定長參數(shù)應(yīng)用案例:替換函數(shù)增強版\h9.6匿名函數(shù)的寫法及應(yīng)用\h9.6.1匿名函數(shù)的語法結(jié)構(gòu)\h9.6.2匿名函數(shù)的常見書寫方式\h9.6.3匿名函數(shù)應(yīng)用案例:根據(jù)身份證號判斷性別\h9.7自定義函數(shù)存放在.py文件中\(zhòng)h9.7.1函數(shù)定義在單獨.py文件中\(zhòng)h9.7.2函數(shù)定義在文件夾中\(zhòng)h第10章Python高級函數(shù)——常用高階函數(shù)應(yīng)用\h10.1map轉(zhuǎn)換函數(shù)\h10.1.1map函數(shù)的第1個參數(shù)為內(nèi)置函數(shù)\h10.1.2map函數(shù)的第1個參數(shù)為自定義函數(shù)\h10.1.3map函數(shù)的第1個參數(shù)為匿名函數(shù)\h10.1.4map函數(shù)的第1個參數(shù)是多參數(shù)\h10.1.5高階函數(shù)map應(yīng)用案例:轉(zhuǎn)換二維表為一維表\h10.2filter篩選函數(shù)\h10.2.1使用filter篩選函數(shù)篩選列表\h10.2.2高階函數(shù)filter應(yīng)用案例:計算美式排名、中式排名\h10.3排序函數(shù)sort與sorted\h10.3.1排序函數(shù)sort\h10.3.2排序函數(shù)sorted\h10.3.3高階函數(shù)sort應(yīng)用案例:對字符串中的數(shù)據(jù)排序\h10.3.4高階函數(shù)sorted應(yīng)用案例:改進美式排名和中式排名的算法\h第11章優(yōu)秀的Python第三方庫——openpyxl庫\h11.1安裝openpyxl庫\h11.2工作簿的基本操作\h11.2.1工作簿的新建\h11.2.2工作簿的讀取\h11.2.3工作簿應(yīng)用案例:批量新建工作簿\h11.3工作表的基本操作\h11.3.1工作表的新建\h11.3.2工作表的讀取\h11.3.3工作表的復(fù)制\h11.3.4工作表的移動\h11.3.5工作表的刪除\h11.3.6工作表應(yīng)用案例1:批量新建工作表\h11.3.7工作表應(yīng)用案例2:批量復(fù)制工作表并修改工作表名稱\h11.3.8工作表應(yīng)用案例3:拆分多個工作表到多個工作簿\h11.4單元格的基本操作\h11.4.1單元格的讀取\h11.4.2單元格區(qū)域的讀取\h11.4.3行信息的獲取\h11.4.4列信息的獲取\h11.4.5單元格的寫入\h11.4.6單元格應(yīng)用案例1:制作九九乘法表\h11.4.7單元格應(yīng)用案例2:求每個人各科分?jǐn)?shù)之和\h11.4.8單元格應(yīng)用案例3:多工作表數(shù)據(jù)合并\h11.4.9單元格應(yīng)用案例4:多工作簿數(shù)據(jù)合并\h11.5工作表的其他操作\h11.5.1插入與刪除行和列\(zhòng)h11.5.2移動單元格\h11.5.3刪除行和列應(yīng)用案例:按條件篩選數(shù)據(jù)\h11.5.4插入行和列應(yīng)用案例:批量制作工資條\h第12章Python與Excel結(jié)合使用——綜合應(yīng)用案例\h12.1綜合應(yīng)用案例1:自定義排序\h12.2綜合應(yīng)用案例2:按行各自排序法\h12.3綜合應(yīng)用案例3:整理不規(guī)范數(shù)據(jù)\h12.4綜合應(yīng)用案例4:將一維表轉(zhuǎn)換為二維表\h12.5綜合應(yīng)用案例5:根據(jù)業(yè)績計算提成金額\h12.6綜合應(yīng)用案例6:查詢業(yè)績表中每個月的最高業(yè)績記錄\h12.7綜合應(yīng)用案例7:二維表的多種匯總方式\h12.8綜合應(yīng)用案例8:按多列分組匯總\h12.9綜合應(yīng)用案例9:多工作簿數(shù)據(jù)匯總\h12.10綜合應(yīng)用案例10:計劃招生與實際招生對比第1章Python基礎(chǔ)——學(xué)習(xí)Python必知必會本章主要講解學(xué)習(xí)Python的必要性、下載并安裝Python、安裝Python集成開發(fā)工具PyCharm、Python的輸入與輸出、Python的代碼注釋、Python中對象的概念、Python中的數(shù)字和字符串、Python編程常用的運算符、格式化字符串、調(diào)試Python中的代碼等。1.1什么是Python近年來,大數(shù)據(jù)、人工智能、機器學(xué)習(xí)的火熱使得越來越多的人開始關(guān)注Python,那么Python到底是什么呢?Python是一門比較容易學(xué)習(xí)的開源語言,也是一種解釋型且面向?qū)ο蟮膭討B(tài)數(shù)據(jù)類型的高級程序設(shè)計語言。Python應(yīng)用場景廣泛,在Web開發(fā)、網(wǎng)絡(luò)編程、爬蟲、云計算、人工智能、自動化運維、數(shù)據(jù)分析、游戲開發(fā)等領(lǐng)域都有應(yīng)用。1.2為什么要學(xué)習(xí)用Python處理Excel表格Excel是一款功能強大的電子表格軟件,但是再強大的軟件也有短板,比如在做一些批量的、重復(fù)性的工作或進行數(shù)據(jù)分析時,如果Excel自帶的功能不能完成,就必須用Excel中的VBA語言來做二次開發(fā)。VBA雖然強大,但應(yīng)用范圍沒有Python的應(yīng)用范圍廣泛,而且VBA只局限于在指定的軟件中使用,而Python是沒有約束的,有著豐富的內(nèi)置庫和第三方庫,功能擴展更為靈活。未來的職場人員掌握一門編程語言將是標(biāo)配。對于非IT專業(yè)的人士來說,要學(xué)習(xí)一門編程語言,何其難也。即使Python易學(xué)易懂,但對于普通職場人員來說還是太難了。如果沒有熟悉的案例來輔助學(xué)習(xí),學(xué)習(xí)過程也是非??菰锏摹R虼?,本書以處理Excel數(shù)據(jù)為切入點來講解Python,讓讀者不但學(xué)會處理數(shù)據(jù)的更多方法,而且也初步掌握了一門編程語言,相當(dāng)于給了讀者一把打開編程大門的鑰匙,為工作提供更多、更好的解決方案。1.3手把手教你安裝Python在學(xué)習(xí)Python之前,需要安裝Python解釋器,如果用戶使用的是Windows操作系統(tǒng),那么下載的Python解釋器必須支持Windows操作系統(tǒng)。1.3.1下載Python在瀏覽器的地址欄中輸入Python的官方網(wǎng)址,按Enter鍵打開網(wǎng)站首頁。在本書中,Python的運行環(huán)境是Windows操作系統(tǒng),所以下載Windows版本的Python即可。在Python網(wǎng)站首頁中,單擊【Downloads】菜單中的【W(wǎng)indows】選項,然后選擇對應(yīng)的下載方式,如圖1-1所示。這里說明一下下載方式中不同單詞的意義。圖1-1選擇對應(yīng)的下載方式Windowsx86-64:適用于64位Windows操作系統(tǒng)。Windowsx86:適用于32位Windows操作系統(tǒng)。embeddablezipfile:解壓安裝,下載的是一個壓縮文件,解壓后即安裝完成。executableinstaller:程序安裝,下載的是一個EXE可執(zhí)行程序,雙擊即可進行安裝。web-basedinstaller:在線安裝,下載的是一個EXE可執(zhí)行程序,雙擊后,該程序自動下載安裝文件(需要有網(wǎng)絡(luò))并進行安裝。筆者在編寫此書時,Python的最新版本是3.7.4,后續(xù)Python官網(wǎng)會持續(xù)更新,可能讀者看到的最新版本和本書的不一樣。這里筆者選擇的是“DownloadWindowsx86-64executableinstaller”下載方式。下載完成后,桌面上有一個壓縮文件圖標(biāo),如圖1-2所示。圖1-2壓縮文件圖標(biāo)1.3.2安裝PythonPython安裝包下載完成后,就可以安裝了,安裝步驟如下。第1步:將鼠標(biāo)指針放在Python壓縮文件上,然后右擊,在彈出的快捷菜單中選擇【以管理員身份運行】命令,如圖1-3所示。圖1-3在快捷菜單中選擇【以管理員身份運行】命令第2步:在彈出的對話框中選中【Installlauncherforallusers(recommended)】和【AddPython3.7toPATH】復(fù)選框,如圖1-4所示。這兩個選項的含義如下?!瘛綢nstalllauncherforallusers(recommended)】:為所有用戶安裝啟動程序(推薦),這樣每個Windows賬戶都可以使用?!瘛続ddPython3.7toPATH】:添加到PATH,即把Python的安裝路徑添加到系統(tǒng)環(huán)境變量PATH中。圖1-4所示的對話框中還提供了兩種安裝方式,分別為【InstallNow】和【Customizeinstallation】?!瘛綢nstallNow】:默認(rèn)設(shè)置安裝,自動安裝Python到C盤中?!瘛綜ustomizeinstallation】:自定義安裝,用戶可設(shè)置自己的Python使用環(huán)境。推薦使用這種安裝方式。圖1-4安裝設(shè)置1選擇【Customizeinstallation】安裝方式后會自動打開下一個對話框。第3步:在彈出的對話框中勾選所有復(fù)選框,然后單擊【Next】按鈕,如圖1-5所示。圖1-5安裝設(shè)置2下面介紹圖1-5中各選項的含義?!瘛綝ocumentation】復(fù)選框:Documentation是Python英文版技術(shù)手冊,也就是入門指南,這個必須安裝。●【pip】復(fù)選框:pip是Python包管理工具,該工具提供對Python包進行查找、下載、安裝、卸載等功能?!瘛総cl/tkandIDLE】復(fù)選框:IDLE是Python軟件包自帶的一個集成開發(fā)環(huán)境,初學(xué)者可以利用它方便地創(chuàng)建、運行、測試和調(diào)試Python程序。測試安裝是否成功的操作就是由它來執(zhí)行的。●【Pythontestsuite】復(fù)選框:Python測試容器,用戶項目開發(fā)時的錯誤原因就是由它來判斷與提示的?!瘛緋ylauncher】復(fù)選框:Python的桌面快捷方式,可以更方便地啟動Python?!瘛緁orallusers(requireselevation)】復(fù)選框:給所有用戶安裝快捷方式,要求有管理員權(quán)限。第4步:在彈出的對話框中勾選所有復(fù)選框,默認(rèn)安裝路徑為“C:\ProgramFiles\Python37”,這里選擇安裝在“D:\Python”目錄下,如圖1-6所示。用戶也可以根據(jù)實際情況修改安裝路徑,完成后單擊【Install】按鈕。圖1-6安裝設(shè)置3下面介紹圖1-6中各選項的含義。●【Installforallusers】復(fù)選框:為所有用戶安裝Python?!瘛続ssociatefileswithPython(requiresthepylauncher)】復(fù)選框:關(guān)聯(lián)所有Python相關(guān)文件?!瘛綜reateshortcutsforinstalledapplications】復(fù)選框:創(chuàng)建桌面快捷方式。●【AddPythontoenvironmentvariables】復(fù)選框:添加環(huán)境變量,選擇該復(fù)選框后,在CMD里直接輸入py就可以打開Python控制臺程序。建議勾選此復(fù)選框?!瘛綪recompilestandardlibrary】復(fù)選框:預(yù)編譯公共庫,可提升運行速度。建議勾選此復(fù)選框?!瘛綝ownloaddebuggingsymbols】復(fù)選框:下載調(diào)試符號,符號用于在調(diào)試時定位出錯的代碼行數(shù)。用戶的Python如果用作開發(fā)環(huán)境,則推薦勾選此復(fù)選框;如果用作運行環(huán)境,則可以不勾選。●【Downloaddebugbinaries(requiresVS2015orlater)】復(fù)選框:下載用于VS的調(diào)試符號。如果不使用VS作為開發(fā)工具,則無須勾選?!瘛綜ustomizeinstalllocation】文本框:用于設(shè)置Python的安裝目錄。第5步:設(shè)置好安裝選項后,正式開始安裝,只需要等待即可,如圖1-7所示。圖1-7正在安裝程序第6步:安裝完成后,會彈出Setupwassuccessful對話框,表示Python安裝成功,單擊【Close】按鈕關(guān)閉即可,如圖1-8所示。圖1-8安裝成功1.3.3驗證是否安裝成功安裝完P(guān)ython程序之后,可以做一個測試來驗證是否安裝成功,操作步驟如下。第1步:在Windows操作系統(tǒng)左下角的【開始】按鈕上右擊,在彈出的快捷菜單中選擇【運行】命令,如圖1-9所示。還有一種快捷方式,就是按Windows+R組合鍵。圖1-9在快捷菜單中選擇【運行】命令第2步:彈出【運行】對話框,在【打開】文本框中輸入命令“cmd”,然后單擊【確定】按鈕,如圖1-10所示。圖1-10輸入命令并單擊【確定】按鈕第3步:在打開的命令提示符對話框中輸入“python”或“py”,再按Enter鍵,這時會顯示與Python相關(guān)的版本信息,進入Python交互模式,表明安裝成功,如圖1-11所示。圖1-11顯示與Python相關(guān)的版本信息1.4安裝Python集成開發(fā)工具PyCharmPyCharm是一個PythonIDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高效率的工具,比如調(diào)試、語法高亮、工程管理、代碼跳轉(zhuǎn)、智能提示、單元測試、版本控制等。1.4.1下載PyCharm第1步:打開PyCharm官方網(wǎng)站后,會彈出如圖1-12所示的界面,單擊【DOWNLOAD】按鈕。圖1-12單擊【DOWNLOAD】按鈕第2步:彈出一個新界面,如圖1-13所示,這里提供了支持Windows、macOS、Linux三種操作系統(tǒng)的PyCharm。本書基于Windows環(huán)境進行講解,所以選擇【W(wǎng)indows】選項,該選項下有Professional(專業(yè)版、收費)和Community(社區(qū)版、免費),單擊Community下的【DOWNLOAD】按鈕進行下載。圖1-13彈出的新界面1.4.2安裝PyCharmPyCharm下載完成后,就可以安裝了,安裝步驟如下。第1步:將鼠標(biāo)指針指向下載好的PyCharm安裝包,然后右擊,在彈出的快捷菜單中選擇【以管理員身份運行】命令,如圖1-14所示。圖1-14在快捷菜單中選擇【以管理員身份運行】命令第2步:在打開的對話框中單擊【Next】按鈕,繼續(xù)進行安裝,如圖1-15所示。圖1-15單擊【Next】按鈕第3步:在打開的對話框中將PyCharm的安裝目錄設(shè)置為“D:\PyCharm”,然后單擊【Next】按鈕,如圖1-16所示。圖1-16設(shè)置安裝目錄第4步:在打開的對話框中勾選【64-bitlauncher】復(fù)選框,如圖1-17所示,表示在桌面上創(chuàng)建PyCharm程序的快捷方式,完成后單擊【Next】按鈕。圖1-17勾選【64-bitlauncher】復(fù)選框圖1-17中各個選項的含義如下?!瘛綜reateDesktopShortcut】:創(chuàng)建桌面快捷方式,如果需要,可勾選下面的【64-bitlauncher】復(fù)選框?!瘛綰pdatePATHvariable(restartneeded)】:將PyCharm的啟動目錄添加到環(huán)境變量(需要重啟)中,如果需要使用命令行操作PyCharm,則勾選下面的【AddlaunchersdirtothePATH】復(fù)選框?!瘛綰pdatecontextmenu】:添加快捷菜單,使用打開項目的方式打開文件夾。如果用戶經(jīng)常需要下載別人的代碼進行查看,可以勾選下面的【Add"OpenFolderasProject"】復(fù)選框,增加快捷菜單選項?!瘛綜reateAssociations】:勾選下面的【.py】復(fù)選框,可將所有.py文件關(guān)聯(lián)到PyCharm,也就是雙擊計算機中的.py文件,會默認(rèn)使用PyCharm打開。第5步:打開如圖1-18所示的對話框,做好PyCharm的相關(guān)設(shè)置后,單擊【Install】按鈕開始安裝程序。圖1-18單擊【Install】按鈕安裝程序第6步:彈出如圖1-19所示的對話框,等待安裝即可。圖1-19正在安裝對話框第7步:安裝完成后,彈出如圖1-20所示的對話框,可以勾選【RunPyCharmCommunityEdition】復(fù)選框,馬上運行PyCharm程序,這里暫時不勾選該復(fù)選框,單擊【Finish】按鈕,安裝成功。圖1-20安裝成功對話框1.4.3設(shè)置PyCharm安裝好PyCharm后,還要進行相關(guān)的設(shè)置,設(shè)置PyCharm的步驟如下。第1步:在桌面上雙擊PyCharm圖標(biāo),首次運行PyCharm時,會彈出設(shè)置對話框。如果之前使用過PyCharm并進行過相關(guān)的設(shè)置,則在此處選擇【Configorinstallationfolder】單選按鈕;如果沒有使用過,則選擇【Donotimportsettings】單選按鈕,然后單擊【OK】按鈕,如圖1-21所示。圖1-21設(shè)置對話框第2步:彈出用戶使用軟件的相關(guān)協(xié)議對話框,選擇【IconfirmthatIhavereadandacceptthetermsofthisUserAgreement】復(fù)選框后,單擊【Continue】按鈕,如圖1-22所示。圖1-22用戶使用軟件的相關(guān)協(xié)議對話框第3步:在彈出的對話框中確定是否需要進行數(shù)據(jù)共享。這里單擊【Don'tsend】按鈕,不進行數(shù)據(jù)共享,如圖1-23所示。圖1-23單擊【Don'tsend】按鈕第4步:在彈出的對話框中選擇主題,左邊為【Darcula】(黑色主題),右邊為【Light】(白色主題)。用戶可根據(jù)需要進行選擇,這里選擇的是【Light】,然后單擊【Next:Featuredplugins】按鈕,如圖1-24所示。圖1-24選擇主題第5步:彈出如圖1-25所示的對話框,可以安裝插件,也可以不安裝插件。這里不安裝插件,直接單擊【StartusingPyCharm】按鈕,啟動PyCharm程序。圖1-25選擇是否安裝插件1.4.4創(chuàng)建項目完成PyCharm設(shè)置后,就可以開始創(chuàng)建Python項目了,創(chuàng)建步驟如下。第1步:設(shè)置Python后,會彈出如圖1-26所示的對話框,【CreateNewProject】選項表示創(chuàng)建新項目,【Open】選項表示打開已經(jīng)存在的項目。這里創(chuàng)建一個新項目,所以選擇【CreateNewProject】選項。圖1-26創(chuàng)建PyCharm項目對話框第2步:在彈出的對話框中將項目創(chuàng)建在“D:\PycharmProjects”文件夾中,單擊【ProjectInterpreter:Python3.7】下拉按鈕,會顯示【Newenvironmentusing】和【Existinginterpreter】兩個選項?!瘛綨ewenvironmentusing】:默認(rèn)選項,為項目創(chuàng)建一個新的環(huán)境。選擇該單選按鈕后,“D:\PycharmProjects\venv”文件夾中會存放一個虛擬的Python環(huán)境,所有的類庫依賴都可以直接脫離系統(tǒng)安裝的Python獨立運行。如果用戶要創(chuàng)建多個項目,那么最好選擇此默認(rèn)選項。●【Existinginterpreter】:表示關(guān)聯(lián)已經(jīng)存在的Python解釋器,如果不想在項目中出現(xiàn)venv虛擬解釋器,可以選擇本地安裝的Python環(huán)境。這里選擇【Existinginterpreter】單選按鈕,然后單擊【Create】按鈕,如圖1-27所示。圖1-27選擇本地安裝的Python環(huán)境第3步:在彈出的對話框中取消選擇【Showtipsonstartup】復(fù)選框,表示取消顯示歡迎界面,然后單擊【Close】按鈕,如圖1-28所示。圖1-28取消顯示歡迎界面第4步:在彈出的界面中將鼠標(biāo)指針指向【PycharmProjects】文件夾,右擊后在彈出的快捷菜單中選擇【New】→【PythonFile】命令,彈出【NewPythonfile】對話框,輸入文件的名稱,如“demo”,如圖1-29所示。最后按Enter鍵,完成Python文件的創(chuàng)建。圖1-29創(chuàng)建Python文件第5步:此時就可以在“demo.py”文件中編寫Python代碼了,如圖1-30所示。圖1-30編寫Python代碼1.5Python的輸出與輸入將Python程序和PyCharm編輯器安裝好之后,就可以編寫和運行Python代碼了。一般在學(xué)習(xí)編程語言時,都要測試一下輸出和輸入效果,讓初學(xué)者有小小的成就感。1.5.1輸出一般查看輸出結(jié)果可以使用print函數(shù),案例代碼如下,代碼在“Chapter-1-1.py”文件中。在代碼上右擊,在彈出的快捷菜單中選擇【Run'Chapter-1-1'】命令,或者按【Ctrl+Shift+F10】組合鍵運行。注意,運行代碼的方法后續(xù)將不再贅述。運行當(dāng)前“Chapter-1-1.py”文件,在窗口下方顯示了運行結(jié)果“嗨!python我來了!”,代碼運行成功,如圖1-31所示。圖1-31輸出案例1.5.2輸入讀者知道了使用print函數(shù)可以完成數(shù)據(jù)的輸出,那么如何編寫輸入語句呢?一般使用input函數(shù)。案例代碼如下,代碼在“Chapter-1-2.py”文件中。運行代碼,如圖1-32所示,窗口下面③處是運行第1行代碼name=input('請輸入你的姓名:')后的結(jié)果,此時暫停,要求用戶輸入姓名,比如輸入“曾賢志”,然后按Enter鍵。程序?qū)⑤斎氲男彰x值給變量name,然后繼續(xù)運行第2行代碼print(name),此時print函數(shù)將name變量中的值打印在屏幕上,④處顯示的是最后的輸出結(jié)果。圖1-32輸入案例在后續(xù)內(nèi)容的講解中,可能會經(jīng)常用到print和input兩個函數(shù)來做數(shù)據(jù)測試,讀者需要掌握它們。1.6Python的代碼注釋代碼注釋就是為寫好的代碼片段添加注解。做代碼注釋有以下兩點好處:●能更好地維護項目,也能讓閱讀者更快地讀懂代碼的意思;●在做代碼調(diào)試時,如果需要讓一部分代碼暫時不運行,就可以使用注釋的方法。1.6.1單行注釋單行注釋,即注釋只作用于一行。在單獨的行寫注釋內(nèi)容之前,要輸入“#”(井號),案例代碼如下,代碼在“Chapter-1-3.py”文件中。在PyCharm中,進行代碼注釋也可以使用快捷鍵,選擇要注釋的行(單行或多行均可),然后按【Ctrl+/】組合鍵,如果需要取消注釋,則再按一次【Ctrl+/】組合鍵。除單獨在一行中做注釋外,也可以在代碼的后面做注釋,案例代碼如下(代碼在“Chapter-1-4.py”文件中)。注意,在代碼后面做注釋,不能使用【Ctrl+/】組合鍵。1.6.2多行注釋如果有大段的注釋文字要寫,則可以使用多行注釋的方法。多行注釋的內(nèi)容要包含在一對單引號中,6個單引號為一對,案例代碼如下,代碼在“Chapter-1-5.py”文件中。單引號中的內(nèi)容不會被運行。除使用單引號做注釋外,也可以使用雙引號來做注釋,案例代碼如下,代碼在“Chapter-1-6.py”文件中。雙引號中的內(nèi)容也不會被運行。到底是使用單引號做注釋,還是使用雙引號做注釋,沒有強制規(guī)定,完全根據(jù)用戶的習(xí)慣而定。1.7Python對象詳解真實的世界是由千千萬萬的對象組成的。在Python的編程世界里,所有的一切也可以看作對象,比如數(shù)字、字符,以及后面將會學(xué)到的列表、元組、集合、字典、函數(shù)等。用戶可以使用這些對象,也可以在Python中創(chuàng)建自己的對象。1.7.1類的定義類也是一種對象,只不過它是用來創(chuàng)建對象的一種對象。類用來描述具有相同屬性和方法的對象集合,它定義了該集合中每個對象所共有的屬性和方法,對象是類的實例。也就是說,對象是由類創(chuàng)建的。比如,后面的章節(jié)中會講解通過list類來創(chuàng)建或轉(zhuǎn)換一個列表對象。1.7.2對象的身份在現(xiàn)實生活中,人就是一個類,而每一個具體的人就是對象,具體的人可以靠身份證號來進行識別,也可以定位所在位置。Python中的對象也是有身份的,可以通過id函數(shù)來識別對象在內(nèi)存中的地址。比如,字符串'曾賢志'就是對象,輸入代碼print(id('曾賢志'))(代碼在“Chapter-1-7.py”文件中),屏幕上的輸出結(jié)果為2673213256496,這串?dāng)?shù)字就可以看作該字符串在內(nèi)存中的地址,并且具有唯一性。但是,這串?dāng)?shù)字是變化的,因此在測試代碼時,每次輸出的結(jié)果可能不一樣,讀者不要為此感到困惑。1#print(id('曾賢志'))#返回數(shù)字26732132564961.7.3對象的類型雖然萬物皆對象,但對象也有類型之分。比如,豬、狗、牛、馬、花、草、樹、木等都是對象,但它們卻是不同的類型,豬、狗、牛、馬是動物類型,花、草、樹、木是植物類型。在Python中,99、888、'abc'都是對象,9和888是數(shù)字類型,而'abc'是字符串類型。不同類型的對象有著不同的屬性和方法,遵循不同的規(guī)則。要查看對象的類型,可以使用type函數(shù)。比如,輸入代碼print(type(99)),代碼在“Chapter-1-8.py”文件中,返回結(jié)果為<class'int'>,表示99是int類型,也就是整數(shù)類型。再比如,輸入代碼print(type('abc')),返回結(jié)果為<class'str'>,表示'abc'是str類型,也就是字符串類型。其他對象的類型就不一一列舉了,后文中會涉及。1.7.4對象的值對象除有身份、類型外,還有值。人的名字就可以看作值。在Python中,有的對象的值是可以改變的,有的對象的值不可以改變。比如,數(shù)字、字符、元組都是不可以改變值的對象。1.7.5對象的屬性對象的特征也稱為屬性。比如,字符串'abcd',它的字符長度為4,這個長度就是該字符串的屬性。1.7.6對象的方法對象所具有的行為也可以稱作方法。比如,對字符串'a-b-c-d'進行拆分,這個拆分就可以說是方法。在Python中,方法的本質(zhì)是函數(shù),在類中定義的函數(shù)叫作方法,沒在類中定義的函數(shù)就叫作函數(shù)。在后面的章節(jié)中將講解一些內(nèi)建的函數(shù)或方法,為方便讀者閱讀,統(tǒng)一都叫作函數(shù)。1.7.7對象與變量在編程過程中,很多時候需要給對象設(shè)置變量,相當(dāng)于給對象貼一個標(biāo)簽,這樣更方便識別。比如a=1,表示給對象1貼一個標(biāo)簽,在引用變量a進行代碼編寫時,就相當(dāng)于在使用對象1。在命名變量時,需要注意如下規(guī)則:●變量名可以由字母、數(shù)字、下畫線(_)組成,但不能以數(shù)字開頭;●變量名不能是Python關(guān)鍵字,但可以包含關(guān)鍵字;●變量名不能包含空格;●變量名盡量取得有意義,容易讓人識別。1.8Python中的數(shù)字與字符串Python中萬物皆對象,數(shù)字與字符串只是其中的兩種對象。為什么要先學(xué)這兩種對象呢?因為這兩種對象最常用,也比較容易學(xué)習(xí)。在后面的章節(jié)中將陸續(xù)講解更多的對象。1.8.1數(shù)字Python中的數(shù)字有3種類型:整數(shù)、浮點數(shù)(小數(shù))、復(fù)數(shù)。有時需要對數(shù)字進行轉(zhuǎn)換,可以使用對象的函數(shù),轉(zhuǎn)換為整數(shù)使用int函數(shù),轉(zhuǎn)換為小數(shù)使用float函數(shù),轉(zhuǎn)換為復(fù)數(shù)使用complex函數(shù)。將字符串'99'賦值給num變量,看看不同函數(shù)對num變量處理的不同結(jié)果。案例代碼如下,代碼在“Chapter-1-9.py”文件中。第3行代碼print(num),使用print函數(shù)輸出num變量的值,結(jié)果為'99'。再運行第4行代碼print(type(num)),使用type函數(shù)測試出該變量為<class'str'>類型,也就是字符串型數(shù)字。第6行代碼print(int(num)),使用int函數(shù)對num變量進行轉(zhuǎn)換,結(jié)果為99。再運行第7行代碼print(type(int(num))),使用type函數(shù)測試出該變量為<class'int'>類型,也就是整型數(shù)字。第9行代碼print(float(num)),使用float函數(shù)對num變量進行轉(zhuǎn)換,結(jié)果為99.0。再運行第10行代碼print(type(float(num))),使用type函數(shù)測試出該變量為<class'float'>類型,也就是浮點型數(shù)字。第12行代碼print(complex(num)),使用complex函數(shù)對num變量進行轉(zhuǎn)換,結(jié)果為99+0j。再運行第13行代碼print(type(complex(num))),使用type函數(shù)測試出該變量為<class'complex'>類型,也就是復(fù)數(shù)數(shù)字。1.8.2字符串字符串就是一串字符,是一個及以上字符的集合。Python中的字符串必須被一對單引號('')或雙引號("")包圍起來。要將其他數(shù)據(jù)轉(zhuǎn)換為字符串類型,可以使用str函數(shù)。比如,將數(shù)字轉(zhuǎn)換為字符串類型,案例代碼如下,代碼在“Chapter-1-10.py”文件中。在Python中,還有一些常用的特殊字符,比如換行符(\n)、制表符(\t)、回車符(\r)等。在遇到特殊字符,需要將其轉(zhuǎn)換為普通字符時,在其前面加上“\”即可。還有另一種轉(zhuǎn)換方法是,在字符串的左外側(cè)加上字母r(大小寫均可)。比如,在“Chapter-1-10.py”文件中:第5行代碼print('我是誰!\n我在哪兒!'),這里的\n表示要換行;第6行代碼print('我是誰!\\n我在哪兒!'),這里的\n沒有換行效果;第7行代碼print(r'我是誰!\n我在哪兒!'),在字符串的左外側(cè)加了r,這里的\n也沒有換行效果,只是普通字符。本節(jié)只講解了數(shù)字和字符串的一些基本知識,關(guān)于它們的更多知識點,將在后文中逐步介紹。1.9算術(shù)運算符Python中的常用算術(shù)運算符有加(+)、減(-)、乘(*)、除(/)、取模(%)、冪(**)、取整數(shù)(//)。下面具體介紹這些運算符。1.9.1加(+)加運算符是執(zhí)行數(shù)字相加運算的符號,比如運行代碼print(100+199),將返回數(shù)字299。同時,加運算符也可以進行字符串的連接運算,比如運行代碼print('曾賢志'+'99分'),返回文本'曾賢志99分'。案例代碼如下,代碼在“Chapter-1-11.py”文件中。除此之外,加號還可以在列表、元組等對象中做連接。1.9.2減(-)減運算符是執(zhí)行數(shù)字相減運算的符號,比如運行代碼print(100-99),返回結(jié)果1。案例代碼如下,代碼在“Chapter-1-12.py”文件中。如果相減的兩個值中有一個值不是標(biāo)準(zhǔn)數(shù)字,就不能正確進行計算。如圖1-33所示,運行代碼print('100'-99)后,提示“unsupportedoperandtype(s)for-:'str'and'int'”,意思是一個值為字符串型,另一個值為整型,這兩種數(shù)據(jù)類型不能在一起運算。圖1-33錯誤的減法運算案例1.9.3乘(*)乘運算符是執(zhí)行數(shù)字相乘運算的符號,比如運行代碼print(100*99),返回9900。乘運算符也有重復(fù)的作用,可對字符串重復(fù)進行運算,比如運行代碼print('python!'*3),返回“python!python!python!”。案例代碼如下,代碼中的“*3”表示重復(fù)3次,代碼在“Chapter-1-13.py”文件中。除此之外,乘號還可以用于重復(fù)其他對象,比如列表、元組等。1.9.4除(/)除運算符是執(zhí)行數(shù)字相除運算的符號,比如運行代碼print(63/8),返回7.875。案例代碼如下,代碼在“Chapter-1-14.py”文件中。注意,相除的結(jié)果為float型,即使商是整數(shù),但其類型也是浮點型(小數(shù))。1.9.5取模(%)取模運算符是執(zhí)行數(shù)字相除運算后取余數(shù)的符號,比如運行代碼print(63%8),返回7,這個值便是63除以8的余數(shù)。案例代碼如下,代碼在“Chapter-1-15.py”文件中。1.9.6冪(**)冪運算符是執(zhí)行乘方運算的符號。n**m是指m個n相乘,也叫n的m次方。比如運行代碼print(4**8),表示4的8次方,返回65536。案例代碼如下,代碼在“Chapter-1-16.py”文件中。1.9.7取整數(shù)(//)取整運算符是執(zhí)行數(shù)字相除運算后取商的整數(shù)的符號,比如運行代碼print(63//8),直接相除的商為7.875,只取商的整數(shù)部分,所以返回7。案例代碼如下,代碼在“Chapter-1-17.py”文件中。1.10比較運算符比較運算符通常用于比較兩個數(shù)值或兩個表達式的大小,比較結(jié)果返回一個邏輯值(True或False),條件成立返回True,條件不成立返回False。Python中的比較運算符有等于(==)、不等于(!=)、大于(>)、小于(<)、大于或等于(>=)、小于或等于(<=)。下面以數(shù)字為比較對象介紹比較運算符的使用方法。1.10.1等于(==)等于運算符用來比較兩個數(shù)值是否相等,比如運行代碼print(9==9),返回邏輯值True;又比如運行代碼print(9==8),返回False。案例代碼如下,代碼在“Chapter-1-18.py”文件中。1.10.2不等于(!=)不等于運算符用來比較兩個數(shù)值是否不相等,比如運行代碼print(9!=8),返回邏輯值True;又比如運行代碼print(9!=9),返回邏輯值False。案例代碼如下,代碼在“Chapter-1-19.py”文件中。1.10.3大于(>)大于運算符用來判斷其左邊的數(shù)值是否大于右邊的數(shù)值,比如運行代碼print(9>8),返回邏輯值True;又比如運行代碼print(9>9),返回邏輯值False。案例代碼如下,代碼在“Chapter-1-20.py”文件中。1.10.4小于(<)小于運算符用來判斷其左邊的數(shù)值是否小于右邊的數(shù)值,比如運行代碼print(8<9),返回邏輯值True;又比如運行代碼print(9<9),返回邏輯值False。案例代碼如下,代碼在“Chapter-1-21.py”文件中。1.10.5大于或等于(>=)大于或等于運算符用來判斷其左邊的數(shù)值是否大于或等于右邊的數(shù)值,比如運行代碼print(8>=9),返回邏輯值False;又比如運行代碼print(9>=9),返回邏輯值True。案例代碼如下,代碼在“Chapter-1-22.py”文件中。1.10.6小于或等于(<=)小于或等于運算符用來判斷其左邊的數(shù)值是否小于或等于右邊的數(shù)值,比如運行代碼print(8<=9),返回邏輯值True;又比如運行代碼print(9<=8),返回邏輯值False。案例代碼如下,代碼在“Chapter-1-23.py”文件中。1.11賦值運算符賦值運算符(=)表示將等號右側(cè)的對象賦給等號左側(cè)的變量。等號左、右兩側(cè)的關(guān)系,就類似于1.7.7節(jié)中描述的對象與變量的關(guān)系。1.11.1賦值運算比如,n=100表示變量n引用的對象是100,m=99表示變量m引用的對象是99,代碼print(n+m)表示將變量n引用的對象100與變量m引用的對象99相加,最后返回199。案例代碼如下,代碼在“Chapter-1-24.py”文件中。1.11.2累積式賦值運算累積式賦值運算是編程中的一項重要技術(shù)。為了讓讀者更容易地理解累積式賦值運算的運算過程,先看如下代碼,代碼在“Chapter-1-25.py”文件中。這段代碼的運算過程如圖1-34所示。圖1-34代碼的運算過程第1行:首先將0賦值給變量n,此時n對應(yīng)的值是0。第2行:將n對應(yīng)的0加上1,再將相加結(jié)果賦值給n,最后n獲取的值是1。第3行:將n對應(yīng)的1加上2,再將相加結(jié)果賦值給n,最后n獲取的值是3。第4行:將n對應(yīng)的3加上3,再將相加結(jié)果賦值給n,最后n獲取的值是6。第5行:使用print函數(shù)將變量n的值6輸出到屏幕上。累積式賦值運算除上面的代碼寫法外,還可以簡化為如下代碼:除上面累積相加的累積式賦值運算外,還可以使用其他運算符做累積式賦值運算,如表1-1所示。表1-1累積式賦值運算1.12邏輯運算符邏輯運算符一共有3個,分別是and、or和not。and:當(dāng)and左右兩邊的條件都為真時,返回真(True);否則,返回假(False)。or:當(dāng)or左右兩邊有一個條件為真時,返回真(True);兩個均為假,返回假(False)。not:假的變成真的,真的變成假的,取反。1.12.1and(與)當(dāng)and運算符左右兩邊的條件都為真時,返回真(True);當(dāng)有一邊的條件為假或兩邊的條件均為假時,返回假(False)。下面的代碼列舉了and運算符左右兩邊的所有可能性,代碼在“Chapter-1-26.py”文件中。1.12.2or(或)當(dāng)or運算符左右兩邊任意一個條件為真時,返回真(True);兩個條件均為假,返回假(False)。下面的代碼列舉了or運算符左右兩邊的所有可能性,代碼在“Chapter-1-27.py”文件中。1.12.3not(非)如果對True取反,則返回False;如果對False取反,則返回True。下面的代碼列舉了not運算符的所有可能性,代碼在“Chapter-1-28.py”文件中。1.13成員運算符除前面幾個小節(jié)中講解的算術(shù)運算符、比較運算符、賦值運算符、邏輯運算符外,Python還支持使用成員運算符。成員運算符用于測試字符串、列表等對象中是否包含指定的值。成員運算符用in表示,返回值是邏輯值。如果在指定的對象中找到了指定的值,則返回True;否則返回False。也可以使用notin來測試對象中沒有指定的值。下面的代碼列出了in運算符的應(yīng)用,代碼在“Chapter-1-29.py”文件中。除可以在字符串中使用in運算符外,后面章節(jié)中將要學(xué)習(xí)的列表、集合、字典等對象也可以使用in運算符來做判斷測試。1.14格式化字符串在Python中,經(jīng)常會對各種對象進行格式化處理。本節(jié)將使用format函數(shù)格式化指定的值,并將其插入字符串的占位符內(nèi)。1.14.1使用位置和關(guān)鍵字格式化字符串在使用format函數(shù)進行格式化時,使用花括號{}定義占位符,下面代碼的返回值均為“恭喜曾賢志獲得100分。”案例代碼如下,代碼在“Chapter-1-30.py”文件中。第2行代碼print('恭喜{}獲得{}分。'.format('曾賢志',100)),按默認(rèn)順序獲取format函數(shù)中的數(shù)據(jù)。其中,第1個{}獲取'曾賢志',第2個{}獲取100。第3行代碼print('恭喜{0}獲得{1}分。'.format('曾賢志',100)),按指定順序獲取format函數(shù)中的數(shù)據(jù)。其中,第1個{0}獲取'曾賢志',第2個{1}獲取100。指定順序可以由用戶任意排列,比如print('{1}分,由{0}獲得。'.format('曾賢志',100))。第6行代碼print('恭喜{name}獲得{score}分。'.format(name='曾賢志',score=100)),按指定名稱獲取format函數(shù)中的數(shù)據(jù)。其中,{name}獲取'曾賢志',{score}獲取100。1.14.2數(shù)字格式設(shè)置數(shù)字格式設(shè)置是常用設(shè)置,對數(shù)字格式化后返回的結(jié)果是字符串型數(shù)字。案例代碼如下,代碼在“Chapter-1-31.py”文件中?!瘢罕硎疽O(shè)置的值?!?2表示保留小數(shù)點后兩位數(shù)?!駀表示返回浮點數(shù),也就是小數(shù)。●%表示設(shè)置成百分比格式。1.14.3對齊設(shè)置對齊設(shè)置是常用的格式化字符串的方式。案例代碼如下,代碼在“Chapter-1-32.py”文件中。●<表示左對齊?!瘢颈硎居覍R?!馸表示居中對齊。其中,第1行代碼print('|{:<10}|'.format('曾賢志')),表示對“曾賢志”進行左對齊設(shè)置,字符串總長度為10,如果不足10個字符,則默認(rèn)用空格填充。當(dāng)然,也可以用指定字符填充。比如,第2行代碼print('|{:□<10}|'.format('曾賢志')),表示如果字符不足,則用“□”來填充。其他行的對齊方式規(guī)則相同,不再贅述。如圖1-35所示是“Chapter-1-32.py”文件中對每行代碼進行對齊格式化后的返回結(jié)果。圖1-35對齊格式化后的返回結(jié)果1.15斷點調(diào)試對于Python初學(xué)者來說,了解代碼的運行過程有助于厘清代碼的邏輯,也可以更高效地進行錯誤追蹤和排錯處理。在PyCharm中進行代碼調(diào)試一般先設(shè)置斷點,然后按快捷鍵完成操作,操作步驟如下。第1步:將鼠標(biāo)指針指向第1行代碼的行號并單擊,此時出現(xiàn)一個紅點,這就是斷點,表示代碼運行到此處暫時停止,如圖1-36所示。圖1-36設(shè)置斷點第2步:在第1行代碼上右擊,在彈出的快捷菜單中選擇要調(diào)試的文件【Debug'Chapter-1-33'】,如圖1-37所示,此時正式進入代碼調(diào)試狀態(tài)。圖1-37在彈出的快捷菜單中選擇要調(diào)試的文件第3步:使用指定的快捷鍵調(diào)試。這里使用單步運行代碼的方式,即單步調(diào)試,可以使用快捷鍵F7。按一次F7鍵,運行一行,可以看到每行代碼中的變量值,如圖1-38所示,界面下面的【Debugger】窗口中顯示了更詳細(xì)的信息。這種調(diào)試方式是比較初級的,有利于初學(xué)者學(xué)習(xí)代碼的邏輯。圖1-38單步調(diào)試第2章Python庫——第三方庫的安裝與學(xué)習(xí)本書主要講解使用Python處理Excel文件,本章將介紹處理Excel文件的經(jīng)典第三方庫。xlrd庫可以讀取和處理.xls、xlsx.類型的Excel文件,xlwt庫可以將數(shù)據(jù)寫入.xls類型的工作簿,而xlutils庫可以將xlrd庫和xlwt庫的功能街接起來。下面介紹這3個庫的基本使用方法。2.1什么是模塊、包、庫模塊(Module):模塊是一個Python文件,擴展名為.py。在模塊中能夠組織Python代碼段,把相關(guān)的代碼放到一個模塊里能讓代碼更好用、更易懂。在模塊里能定義函數(shù)、類和變量,模塊中也能包含可執(zhí)行的代碼。包(Package):包是模塊之上的概念,為了方便管理.py模塊文件,可以進行打包。包其實就是文件夾,只不過該文件夾下有名稱為__init__.py的文件,否則就是普通的文件夾。包中可以有模塊和子文件夾,假如子文件夾中也有__init__.py文件,那么它就是這個包的子包。庫(Library):在Python中,具有某些功能的模塊和包都可以被稱作庫。模塊由諸多函數(shù)組成,包由諸多模塊組成,庫中可以包含模塊、包和函數(shù)。Python中的庫分為標(biāo)準(zhǔn)庫和第三方庫。標(biāo)準(zhǔn)庫就是安裝Python時自帶的庫,可以直接使用。第三方庫是由第三方機構(gòu)發(fā)布的,使用前需要安裝。2.2安裝Excel讀取庫xlrd想用Python處理Excel數(shù)據(jù),但是Python標(biāo)準(zhǔn)庫中沒有處理Excel文件的庫,這時就需要安裝第三方庫。xlrd就是處理Excel文件的第三方庫。下面介紹如何在PyCharm中安裝第三方庫xlrd。第1步:在PyCharm窗口中,單擊【File】菜單中的【Settings】命令,在彈出的【Settings】對話框中,單擊【Project:PycharmProjects】中的【ProjectInterpreter】選項,然后單擊右側(cè)的按鈕,如圖2-1所示。需要注意以下兩點:●【Project:PycharmProjects】選項中的【PycharmProjects】指創(chuàng)建項目時的文件夾名稱;●需要留意xlrd庫安裝的位置是在哪個ProjectInterpreter(項目解釋器)中,用戶可以在下拉列表中自行選擇,當(dāng)前安裝在“D:\Python”中。圖2-1【Settings】對話框第2步:在彈出的【AvailablePackages】對話框中,首先搜索關(guān)鍵字“xlrd”,然后在下面的搜索結(jié)果中選擇【xlrd】選項,再單擊【InstallPackage】按鈕開始安裝,如圖2-2所示。如果安裝成功,在【InstallPackage】按鈕上方會提示“Package'xlrd'installedsuccessfully”。圖2-2【AvailablePackages】對話框第3步:安裝成功后,返回【Settings】對話框,單擊【OK】按鈕即可,如圖2-3所示。圖2-3安裝成功2.3xlrd模塊導(dǎo)入安裝好xlrd庫后,要使用庫中的功能,就需要導(dǎo)入xlrd??梢允褂胕mport語句來完成導(dǎo)入。導(dǎo)入的方法有以下兩種。方法1:import模塊名1[as別名1],模塊名2[as別名2],…使用這種語法格式的import語句,可以導(dǎo)入庫中的所有成員(變量、函數(shù)、類等)。如果模塊名稱太長,也可以用“as別名”的方式來重命名。方法2:from模塊名import成員名1[as別名1],成員名2[as別名2],…使用這種語法格式的import語句,只導(dǎo)入庫中指定的模塊,而不是全部成員。代碼importxlrd將導(dǎo)入xlrd庫的全部,這樣就可以使用xlrd庫中的所有功能了。而代碼fromxlrdimportopen_workbookasowk則導(dǎo)入xlrd庫中的open_workbook函數(shù),別名為owk,后面再次使用open_workbook函數(shù)時,可以使用owk來代替它。案例代碼如下,代碼在“Chapter-2-1.py”文件中。2.4讀取Excel工作簿、工作表信息要使用xlrd庫處理Excel文件,必須先學(xué)會讀取工作簿,以及讀取工作簿下的工作表。完成這些操作,才能繼續(xù)后面的工作。2.4.1讀取Excel工作簿可以使用open_workbook函數(shù)讀取指定的工作簿并賦值給變量,在指定工作簿名稱時,可以使用相對路徑,也可以使用絕對路徑。讀取Excel工作簿的代碼如下,代碼在“Chapter-2-2.py”文件中。2.4.2讀取Excel工作表讀取工作簿后,可能還需要讀取工作簿中的工作表,如圖2-4所示。圖2-4讀取的工作表讀取Excel工作表的代碼如下,代碼在“Chapter-2-3.py”文件中。第3行代碼all_ws1=wb.sheets(),表示讀取工作簿中的所有工作表并賦值給all_ws1變量。工作表是存儲在列表中的。all_ws1變量中有3個工作表對象,即[<xlrd.sheet.Sheetobjectat0x000002C746400948>,<xlrd.sheet.Sheetobjectat0x000002C746300288>,<xlrd.sheet.Sheetobjectat0x000002C746406B08>]。第4行代碼all_ws2=wb.sheet_names(),表示讀取工作簿中的所有工作表名稱并賦值給all_ws2變量。注意這里讀取的是工作表名稱,不是工作表對象。這些工作表名稱也是用列表來存儲的。all_ws2變量中的值為['飛龍隊','猛虎隊','雪豹隊']。第5行代碼ws1=wb.sheet_by_index(0),表示讀取工作簿中第0個工作表并賦值給ws1變量。注意,索引值是從0開始的,此時讀取的是“飛龍隊”工作表。第6行代碼ws2=wb.sheets()[1],表示讀取工作簿中的第1個工作表并賦值給變量ws2,此種讀取方式變量沒有成員提示。注意,索引值是從0開始的,此時讀取的是“猛虎隊”工作表。第7行代碼ws3=wb.sheet_by_name('雪豹隊'),表示讀取工作簿中名稱為“雪豹隊”的工作表并賦值給ws3變量。第8行代碼ws4=xlrd.open_workbook(r'Chapter-2-3-1.xlsx').sheet_by_name('飛龍隊'),表示直接通過工作簿來讀取名稱為“飛龍隊”的工作表并賦值給ws4變量。2.5讀取Excel行、列、單元格信息學(xué)習(xí)了讀取Excel工作簿、工作表后,接下來學(xué)習(xí)如何讀取工作表中的行、列、單元格信息。如圖2-5所示,讀取“飛龍隊”工作表中的相關(guān)信息。圖2-5“飛龍隊”工作表讀取“飛龍隊”工作表中相關(guān)信息的代碼如下,代碼在“Chapter-2-4.py”文件中。第4行代碼row_count=ws.nrows,表示讀取“飛龍隊”工作表中已使用的行數(shù),row_count變量返回值為5。第5行代碼col_count=ws.ncols,表示讀取“飛龍隊”工作表中已使用的列數(shù),col_count變量返回值為2。第6行代碼row_obj=ws.row(1),表示讀取“飛龍隊”工作表中第2行已使用的單元格對象,row_obj變量返回的是列表,列表中包含A2和B2單元格對象。第7行代碼row_val=ws.row_values(1),表示讀取“飛龍隊”工作表中第2行已使用的單元格的值,不包含其他信息,row_val變量返回的也是列表,列表中包含A2和B2單元格的值{'小明',98}。第8行和第9行代碼col_obj=ws.col(0)和col_val=ws.col_values(0)用來讀取“飛龍隊”工作表中指定列已使用的單元格對象和值,與第6行和第7行代碼中讀取行的信息是相同的,只是方向不同而已,這里不再贅述。第10行和第11行代碼cell_obj=ws.cell(3,1)和cell_val=ws.cell_value(3,1)用來讀取“飛龍隊”工作表中指定列和指定行交叉的單元格對象和單元格的值。值得注意的是,無論是讀取工作表、行、列,還是讀取單元格的信息,如果以索引值方式讀取,均是從0開始計算的。2.6安裝Excel寫入庫xlwt前面介紹的xlrd庫只能讀取Excel文件中的數(shù)據(jù),如果要往Excel文件中寫入數(shù)據(jù),xlrd庫則不具備這個功能,需要安裝xlwt庫。xlwt庫具有創(chuàng)建工作簿、工作表,以及將數(shù)據(jù)寫入單元格的功能。xlwt庫的安裝方法與2.2節(jié)中xlrd庫的安裝方法相同,這里不再贅述,安裝成功后的界面如圖2-6所示。圖2-6安裝xlwt庫成功2.7新建工作簿、新建工作表和將數(shù)據(jù)寫入單元格安裝好xlwt庫后,接下來通過代碼實現(xiàn)新建工作簿、新建工作表,以及將數(shù)據(jù)寫入單元格、保存工作簿等操作,完成后的效果如圖2-7所示。圖2-7完成后的效果本案例代碼如下,代碼在“Chapter-2-5.py”文件中。第1行代碼importxlwt,表示導(dǎo)入xlwt庫。第2行代碼nwb=xlwt.Workbook('utf-8'),表示通過Workbook新建工作簿,然后將參數(shù)設(shè)置為utf-8,否則可能會出現(xiàn)不兼容中文的情況,最后將新建的工作簿賦值給nwb變量。第3行代碼nws=nwb.add_sheet('工資表'),表示在新建的工作簿中新建名稱為“工資表”的工作表,并且將新建的工作表賦值給nws變量。第4行代碼nws.write(0,0,'張三:9000元'),表示在新建的工作表中的第0行第0列,也就是A1單元格中寫入值“張三:9000元”。第5行代碼nwb.save('工資表.xls'),表示保存新建的工作簿,工作簿名稱為“工資表.xls”。注意,xlwt庫暫時只支持保存為.xls格式,不能保存為新版的.xlsx格式。2.8安裝Excel修改庫xlutilsxlrd庫只能用于讀取已經(jīng)存在的Excel工作簿、工作表、單元格等相關(guān)信息,而xlwt庫只能新建工作簿、新建工作表、將數(shù)據(jù)寫入單元格等,沒有辦法對現(xiàn)有的工作簿進行修改。要實現(xiàn)修改功能,就需要安裝xlutils庫,相當(dāng)于在xlrd庫和xlwt庫之間建立起一座橋梁。但要注意,使用xlutils庫一定要先安裝xlrd庫和xlwt庫,否則安裝xlutils庫沒有意義。xlutils庫的安裝方法與2.2節(jié)中xlrd庫的安裝方法相同,這里不再贅述,安裝成功后的界面如圖2-8所示。圖2-8安裝xlutils庫成功2.9修改工作簿、工作表、單元格安裝好xlutils庫之后,接下來修改已經(jīng)存在的“Chapter-2-6-1.xls”工作簿,代碼如下,代碼在“Chapter-2-5.py”文件中。第2行代碼fromxlutils.copyimportcopy,表示導(dǎo)入xlutils庫copy模塊下的copy函數(shù),因為暫時只用到copy函數(shù),所以不用導(dǎo)入整個xlutils庫。這種寫法在表示上也更簡捷。如果導(dǎo)入整個xlutils庫,那么在使用copy函數(shù)時的表示方法為xlutils.copy.copy,而現(xiàn)在直接寫copy就可以了。第3行代碼wb=x

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論