版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
認(rèn)識PythonPython數(shù)據(jù)處理、分析、可視化與數(shù)據(jù)化運營01本章學(xué)習(xí)目標(biāo)了解Python基本概念和語言特點了解為什么選擇Python做數(shù)據(jù)分析如何如何準(zhǔn)備Python程序環(huán)境以及安裝所需的第三方庫了解常用的Python數(shù)據(jù)分析庫掌握如何使用Jupyter實現(xiàn)文件和代碼的創(chuàng)建、編輯、管理了解如何配置Jupyter掌握如何使用print語句實現(xiàn)第一個程序功能了解一些場景的數(shù)據(jù)基本誤區(qū)1.1Python與數(shù)據(jù)分析Python是一種面向?qū)ο蟮慕忉屝愿呒壘幊陶Z言。1989年的圣誕節(jié),荷蘭人Guido開始編寫Python語言的編譯器。1991年,第一個Python編譯器誕生,這標(biāo)志著Python的第一個版本正式誕生。1.1Python與數(shù)據(jù)分析(1)開源/免費。(2)可移植性:Windows、Linux、Mac等多平臺運行。(3)豐富的第三方數(shù)據(jù)工作庫:自帶數(shù)學(xué)計算庫、豐富的第三方庫和工具(4)強大的數(shù)據(jù)獲取和集成能力:Python除了可以支持多種類型的文件和數(shù)據(jù)庫集成外,還能通過API、網(wǎng)絡(luò)抓取等方式獲取外部數(shù)據(jù)。Python語言的特點1.1Python與數(shù)據(jù)分析(5)海量數(shù)據(jù)的計算能力和效率:輕松應(yīng)對GB甚至TB級別數(shù)據(jù)。(6)與其他語言的集成:Python具備“膠水”能力,能與Java、C、C++、MATLAB、R等語言集成使用。(7)強大的學(xué)習(xí)交流和培訓(xùn)資源。(8)開發(fā)效率高:Python語言簡潔、規(guī)范、開發(fā)效率高。(9)簡單易學(xué):Python語法簡單,即使是沒有任何代碼基礎(chǔ)的人也能在幾個小時內(nèi)掌握基本的Python編程技巧。1.1Python與數(shù)據(jù)分析Python語言本身的簡潔易用性,簡單易于實現(xiàn)。數(shù)據(jù)工作上有專業(yè)的工具庫,功能強大。Python在應(yīng)對結(jié)構(gòu)化、非結(jié)構(gòu)化等多類型數(shù)據(jù)以及海量數(shù)據(jù)集時仍然具有非常好的適應(yīng)性和擴展性,適用場景廣泛。選擇Python做數(shù)據(jù)分析的原因1.2如何準(zhǔn)備Python程序環(huán)境安裝Python程序安裝第三方庫1.2如何準(zhǔn)備Python程序環(huán)境使用Anaconda準(zhǔn)備Python程序環(huán)境的優(yōu)勢默認(rèn)安裝好Python標(biāo)準(zhǔn)程序,不用單獨下載安裝。默認(rèn)安裝常用的數(shù)據(jù)分析和挖掘工具包,如Pandas、Numpy、Scipy、Statsmodels、Scikit-Learn(sklearn)等支持Windowns、MacOS和Linux多平臺提供多種Python交互功能,如IPyton、jupyter、spyder等安裝Python程序1.2如何準(zhǔn)備Python程序環(huán)境如何使用Anaconda準(zhǔn)備Python程序環(huán)境登錄Anaconda官網(wǎng)下載對應(yīng)系統(tǒng)和對應(yīng)版本即可①選擇系統(tǒng)類型②選擇Python版本③選擇64位版本安裝Python程序1.2如何準(zhǔn)備Python程序環(huán)境使用pip或conda命令。Pip和conda是什么pip是Python包管理工具,提供了對Python包的查找、下載、安裝、更新、卸載等功能。Python2.7.9+或Python3.4+以上版本都自帶pip工具。conda是Anaconda的Python包管理工具,提供的功能與pip基本類似,區(qū)別僅在于僅適用于anaconda安裝環(huán)境,pip則是通用任何環(huán)境。安裝第三方庫1.2如何準(zhǔn)備Python程序環(huán)境使用pip或conda命令。如何使用pip安裝第三方庫,用法是:>>>pipinstallPACKAGE#其中PACKAGE是要安裝的庫的源,該源可以使庫的名字,本地庫的whl文件或遠(yuǎn)程服務(wù)器的庫的whlURL鏈接地址示例:>>>pipinstallscikit-learn #通過庫名字在線安裝,要求必須聯(lián)網(wǎng)安裝第三方庫1.2如何準(zhǔn)備Python程序環(huán)境使用pip或conda命令。如何使用pip安裝第三方庫示例:>>>pipinstall/packages/b2/9d/3e18b1191331d9a467426fb4625c17de1aae29d371696f38a5e05238e99/scikit_learn-0.20.1-cp36-cp36m-win_amd4.whl #通過在線文件地址安裝,要求必須聯(lián)網(wǎng)>>>pipinstallscikit_learn-0.20.1-cp36-cp36m-win_amd4.whl #通過本地下載好的庫安裝,要求whl文件已經(jīng)下載到本地,與pip命令目錄一致安裝第三方庫1.2如何準(zhǔn)備Python程序環(huán)境使用setup.py配合install方法安裝第三方庫,用法是:示例:安裝第三方庫>>>cd[解壓后的包含了setup.py的路徑]#要求安裝文件(通常是壓縮包格式,例如tar.gz)已經(jīng)下載到本地并解壓>>>pythonsetup.pyinstall1.2如何準(zhǔn)備Python程序環(huán)境使用setup.py配合install方法安裝第三方庫,以手動安裝Scrapy庫為例:安裝第三方庫①從pypi源(也可以是其他下載源)下載Scrapy-2.3.0.tar.gz1.2如何準(zhǔn)備Python程序環(huán)境使用setup.py配合install方法安裝第三方庫,以手動安裝Scrapy庫為例:安裝第三方庫②在下載好的壓縮包上,鼠標(biāo)右鍵,選擇“解壓到當(dāng)前文件夾”。解壓之后,會產(chǎn)生一個新的文件夾。1.2如何準(zhǔn)備Python程序環(huán)境使用setup.py配合install方法安裝第三方庫,以手動安裝Scrapy庫為例:③按window+r快捷鍵,調(diào)出“運行窗口”,輸入“cmd”命令調(diào)出window命令行窗口,并輸入命令:安裝第三方庫>>>cdC:\Users\Administrator\Desktop\Scrapy-2.3.0#注意需要輸入實際解壓的目錄
>>>pythonsetup.pyinstall安裝過程中可能會下載依賴的其他第三方庫,安裝成功后會輸出successful字樣1.3Python數(shù)據(jù)分析庫Pandas是PythonDataAnalysisLibrary的簡稱主要作用是進(jìn)行數(shù)據(jù)分析和預(yù)處理。提供用于進(jìn)行結(jié)構(gòu)化數(shù)據(jù)分析的二維的表格。型數(shù)據(jù)結(jié)構(gòu)DataFrame,類似于R中的數(shù)據(jù)框。Pandas還提供了時間序列的功能,用于金融行業(yè)的數(shù)據(jù)分析。Anaconda默認(rèn)已經(jīng)安裝了該包。Pandas1.3Python數(shù)據(jù)分析庫Scipy是ScientificComputingToolsforPython的簡稱專門解決科學(xué)和工程計算不同場景的主題工具包。主要功能側(cè)重于數(shù)學(xué)、函數(shù)等相關(guān)方面,如積分和微分方程求解等Anaconda默認(rèn)已經(jīng)安裝了該包。Scipy1.3Python數(shù)據(jù)分析庫NumPy是NumericPython的簡稱是Python科學(xué)計算的基礎(chǔ)工具包,也是Python做數(shù)據(jù)計算的關(guān)鍵庫之一。Anaconda默認(rèn)已經(jīng)安裝了該包。NumPy1.3Python數(shù)據(jù)分析庫scikit-learn,簡稱sklearnPython數(shù)據(jù)挖掘和機器學(xué)習(xí)的主要庫之一。機器學(xué)習(xí)綜合庫,內(nèi)置監(jiān)督式學(xué)習(xí)和非監(jiān)督式學(xué)習(xí)兩類機器學(xué)習(xí)方法,一個非常完整的機器學(xué)習(xí)工具庫。Anaconda默認(rèn)已經(jīng)安裝了該包。scikit-learn1.3Python數(shù)據(jù)分析庫Statsmodels是Python的統(tǒng)計建模和計量經(jīng)濟學(xué)工具包提供功能包括一些描述性統(tǒng)計、統(tǒng)計模型估計和統(tǒng)計測試。Anaconda默認(rèn)已經(jīng)安裝了該包。Statsmodels1.3Python數(shù)據(jù)分析庫Gensim是一個專業(yè)的主題模型用來提供可擴展統(tǒng)計語義、分析純文本語義結(jié)構(gòu)以及檢索語義上類似的文檔。Gensim默認(rèn)不在Anaconda的安裝包中,讀者可在終端命令行中使用pipinstallgensim命令即可安裝。Gensim1.4Python交互環(huán)境Jupyter一個在線交互式WEB應(yīng)用服務(wù),通過調(diào)用不同的內(nèi)核程序,可支持運行40多種編程語言可以編寫、運行代碼,查看輸出、可視化數(shù)據(jù)并查看結(jié)果??蓤?zhí)行端到端的數(shù)據(jù)科學(xué)工作流程的便捷工具,包括數(shù)據(jù)讀取、預(yù)處理、統(tǒng)計分析、算法建模、結(jié)果可視化等JupyterNotebook是什么1.4Python交互環(huán)境Jupyter啟動Jupyter從命令行啟動1.4Python交互環(huán)境Jupyter啟動Jupyter從快捷方式啟動1.4Python交互環(huán)境JupyterJupyter的功能區(qū)①主功能區(qū)②文件和目錄功能區(qū)③文件和目錄列表1.4Python交互環(huán)境JupyterJupyter的常用操作新建Python文件編輯Python文件保存與恢復(fù)導(dǎo)出文件單元格輸入和輸出單元格常用編輯功能執(zhí)行Python程序1.4Python交互環(huán)境JupyterJupyter的魔術(shù)命令什么是魔術(shù)命令所謂魔術(shù)命令指的是IPython提供的特殊命令,它將常用的操作以%開頭的命令封裝起來,使用時非常方便1.4Python交互環(huán)境JupyterJupyter的魔術(shù)命令常用魔術(shù)命令%matplotlibinline:把matplotlib庫的可視化結(jié)果%ls:查看當(dāng)前目錄下的文件或文件夾詳細(xì)列表信息%cd:切換工作路徑%run:執(zhí)行特定Python文件。要中斷程序,按Ctrl+C組合健%paste和%cpaste:粘貼在剪切板中的內(nèi)容%pwd:查看當(dāng)前Python工作路徑和目錄1.4Python交互環(huán)境JupyterJupyter的魔術(shù)命令常用魔術(shù)命令%time、%timeit和%%time、%%timeit:用來做代碼執(zhí)行時間測試%hist:顯示命令的輸入(可選輸出)歷史,在查找歷史命令操作時非常有效%quickref:顯示IPython的快速參考%magic:顯示所有魔術(shù)命令的詳細(xì)文檔1.4Python交互環(huán)境JupyterJupyter的配置命令:jupyternotebook--generate-config完成之后,系統(tǒng)會有如下提示:生成配置文件>>>Writingdefaultconfigto:C:\Users\Administrator\.jupyter\jupyter_notebook_config.py1.4Python交互環(huán)境JupyterJupyter的配置修改配置文件>>>c.NotebookApp.notebook_dir='D:\\[書籍]python數(shù)據(jù)分析\\4_附件'Signature1.5執(zhí)行第一個Python程序步驟1新建一個名為hello_word的Python3文件步驟2輸入如下代碼:步驟3單擊按鈕,執(zhí)行命令步驟4查看打印及保存結(jié)果>>>print('helloworld')源碼見配套資源:chapter1/code.ipynbSignature1.6新手常見誤區(qū)隨意升級庫到最新版本糾結(jié)于使用Python2還是Python3糾結(jié)于選擇32位還是64位版本Signature實訓(xùn):打印自己的名字學(xué)習(xí)進(jìn)步!Python數(shù)據(jù)處理、分析、可視化與數(shù)據(jù)化運營Python語言基礎(chǔ)
宋天龍
個人微信號:tonysong2013Python數(shù)據(jù)處理、分析、可視化與數(shù)據(jù)化運營02本章學(xué)習(xí)目標(biāo)掌握Python的基本語法和基礎(chǔ)規(guī)則掌握定義不同類型Python數(shù)據(jù)對象的方法熟悉常見的數(shù)據(jù)結(jié)構(gòu),尤其是如何通過推導(dǎo)式生成能夠通過條件表達(dá)式定義程序邏輯,以及賦值形成變量對象掌握for和while循環(huán)定義方法,以及如何控制循環(huán)流程了解常用的運算符以及各運算符優(yōu)先級掌握常用的字符串處理方法,并簡單了解正則表達(dá)式的用法掌握函數(shù)、匿名函數(shù)和類的定義和使用方法本章學(xué)習(xí)目標(biāo)熟悉常見的高階計算函數(shù)的應(yīng)用方法掌握導(dǎo)入庫的方法熟悉常見的Pandas庫函數(shù)的使用方法了解新手誤區(qū)的知識點2.1基礎(chǔ)規(guī)則含義:解釋并執(zhí)行Python文件的程序基本語法#!引導(dǎo)Python解釋器的具體路徑語法位置:程序文件的第一行Python解釋器#!/usr/bin/python2.1基礎(chǔ)規(guī)則含義:設(shè)置Python解釋器在讀取解釋文件時的編碼規(guī)則基本語法:語法位置:如果首行是Python解釋器信息,那么編碼就在第二行;否則編碼應(yīng)該在首行編碼聲明#coding=<encodingname>或者#-*-coding:<encodingname>-*-2.1基礎(chǔ)規(guī)則用途:通過不同層次的縮進(jìn)實現(xiàn)功能范圍的界定基本語法:一般上,在Python中以4個英文空格為單位實現(xiàn)不同層級的縮進(jìn),且不同層級的縮進(jìn)量必須相同示例(偽代碼):縮進(jìn)和執(zhí)行域如果a>5:#層級1
打印a>5#層級2否則:#層級1
打印a<5#層級22.1基礎(chǔ)規(guī)則用途:一條語句太長,人為地將其拆分為兩行或多行目的:提高程序的可讀性長度建議:每行的最大長度是79或80個字符(注意:該長度不是必須的,只是建議值)用法:使用反斜杠\斷行,示例:長語句斷行>>>print(‘這是一個條非常非常非常非常非常非常非常非常非常很長很長很長很長的語句’)#未斷行>>>print('這是一個條非常非常非常非常非常非常非常非常非常\很長很長很長很長的語句‘)#斷行2.1基礎(chǔ)規(guī)則用途:在程序中用于說明或解釋特定用途、功能、注意點等關(guān)鍵信息單行和多行注釋>>>print('LearnPython')#打印輸出字符串——這里是注釋信息單行注釋:用于簡單功能說明,使用#實現(xiàn),示例:2.1基礎(chǔ)規(guī)則用途:在程序中用于說明或解釋特定用途、功能、注意點等關(guān)鍵信息單行和多行注釋'''這是多行注釋第一行這是多行注釋第二行'''print('LearnPython')多行注釋:用于較多功能尤其是模塊化封裝的功能里面,如函數(shù)、類的文檔字符串等。多行注釋使用三個單引號'''或者三個雙引號"""將注釋括起來,示例:2.1基礎(chǔ)規(guī)則Python中的變量需要先定義再使用,常見的命名規(guī)則:變量的命名和賦值(1)變量名由數(shù)字、字母、下畫線組成,但不能以數(shù)字開頭。(2)變量名不能使用Python關(guān)鍵字,如if、while、enumerate、true等。(3)變量名區(qū)分大小寫,例如a=1和A=1是不同的變量。(4)使用可理解、行業(yè)通用的變量名,而非無意義的簡寫,便于理解變量含義。2.1基礎(chǔ)規(guī)則變量賦值使用=(等號)實現(xiàn),等號左邊是變量名,等號右邊是變量值。任何一個對象都能賦值給變量,包括數(shù)字、字符串、日期、數(shù)組、矩陣等。示例:變量的命名和賦值>>>is_man=1>>>is_women=False2.2數(shù)據(jù)類型Python的數(shù)字類型可細(xì)分為整數(shù)型、浮點型、布爾型和復(fù)數(shù)類型四種Number類型a1=2#整數(shù)型,等價于int(2)a2=2.1#浮點型,等價于float(2.1)a3=True#布爾型,等價于bool(1)a4=complex(1)#復(fù)數(shù)型2.2數(shù)據(jù)類型日期類數(shù)據(jù)其實并不是Python內(nèi)置類型,而是Python標(biāo)準(zhǔn)庫time和datetime中的類型日期類Date、Time、Datetime和Datetimestampfromdatetimeimportdatetimedate_info=datetime.today().date().strftime(‘%Y-%m-%d’)#①獲得當(dāng)前的日期time_info=datetime.today().time().strftime(‘%H:%M:%S’)#②獲得當(dāng)前的時間Datetime_info=datetime.now().strftime(‘%Y-%m-%d%H:%M:%S’)#③獲得當(dāng)前的日期和時間組合Datetimestamp_info=datetime.now().strftime(‘%Y-%m-%d%H:%M:%S%f’)#④獲得當(dāng)前的時間戳,年月日時分秒+時間戳格式Datetimestamp_info2=datetime.now().timestamp()#⑤獲得當(dāng)前時間戳,niux標(biāo)識方法2.2數(shù)據(jù)類型數(shù)據(jù)類型的判斷方法:type。用法是type(object)Isinstance。用法是isinstance(object,class_or_tuple),其中的class是object的類型,而tuple是類型的元組,該方法返回特定對象是否為class或tuple中定義類型的布爾值數(shù)據(jù)類型的判斷與轉(zhuǎn)換type('字符串')#使用type方法判斷類型,返回strisinstance('字符串',str)#使用isinstance方法判斷類型,返回True2.2數(shù)據(jù)類型字符串str和bytes類型相互轉(zhuǎn)換數(shù)據(jù)類型的判斷與轉(zhuǎn)換a5='字符串'#字符串str_to_bytes=str.encode(a5)#使用字符串的內(nèi)置encode方法,將a5轉(zhuǎn)換為bytes類型,默認(rèn)使用utf-8格式編碼bytes_to_str=bytes.decode(str_to_bytes)#使用bytes內(nèi)置的decode方法將對象解碼成字符串,默認(rèn)使用utf-8格式解碼2.2數(shù)據(jù)類型字符串str和數(shù)字Number類型相互轉(zhuǎn)換數(shù)據(jù)類型的判斷與轉(zhuǎn)換a7='1'#定義一個必須能轉(zhuǎn)換為數(shù)字的字符串對象str_to_int=int(a7)#使用int方法將字符串轉(zhuǎn)換為整數(shù)型str_to_int=float(a7)#使用float方法將字符串轉(zhuǎn)換為浮點型str_to_bool=bool(a7)#使用bool方法將字符串轉(zhuǎn)換為浮點型str_to_complex=complex(a7)#使用complex方法將字符串轉(zhuǎn)換為復(fù)數(shù)型字符串轉(zhuǎn)數(shù)字?jǐn)?shù)字轉(zhuǎn)字符串int_to_str=str(str_to_int)#使用str方法轉(zhuǎn)換為字符串型2.2數(shù)據(jù)類型字符串str與日期類型的相互轉(zhuǎn)換數(shù)據(jù)類型的判斷與轉(zhuǎn)換datetime_to_str=datetime.now().strftime('%Y-%m-%d%H:%M:%S')#日期轉(zhuǎn)字符串str_to_datetime=datetime.strptime(datetime_to_str,'%Y-%m-%d%H:%M:%S')#字符串轉(zhuǎn)日期2.3數(shù)據(jù)結(jié)構(gòu)列表是一個可變的有序集合,列表內(nèi)部可包含任何數(shù)據(jù)類型??勺円馕吨斜韮?nèi)元素可以發(fā)生改變,有序意味著列表內(nèi)的元素都有先后順序。列表和列表推導(dǎo)式list_example1=[]list_example2=list()list_example3=[1,True,b'bytes',['a','b']]創(chuàng)建列表:使用中括號[]或list()方法2.3數(shù)據(jù)結(jié)構(gòu)列表和列表推導(dǎo)式列表操作用途方法說明示例追加append(object)追加元素到列表,默認(rèn)追加在最后,用于追加單個元素In:a=[1,2,3]In:a.append(4)In:aOut:[1,2,3,4]清空clear()清空整個列表In:a=[1,2,3]In:a.clear()In:aOut:[]2.3數(shù)據(jù)結(jié)構(gòu)列表和列表推導(dǎo)式列表操作用途方法說明示例復(fù)制copy()復(fù)制(拷貝)列表為新列表In:a=[1,2,3]In:b=a.copy()In:bOut:[1,2,3]批量追加extend(iterable)將另外一份列表對象批量追加到列表中,用于列表的擴展In:a=[1,2,3]In:b=[4,5]In:a.extend(b)In:aOut:[1,2,3,4,5]2.3數(shù)據(jù)結(jié)構(gòu)列表和列表推導(dǎo)式列表操作用途方法說明示例查詢值的索引index(value)查詢從列表中某個值第一個匹配項的索引值In:a=[1,2,3]In:a.index(2)Out:1插入insert(index,object)將對象插入列表,與append不同的是可指定插入位置In:a=[1,2,3]In:a.insert(1,4)In:aOut:[1,4,2,3]2.3數(shù)據(jù)結(jié)構(gòu)列表和列表推導(dǎo)式列表操作用途方法說明示例按索引刪除元素pop(index=-1)移除列表中的一個(默認(rèn)最后一個)元素,并且返回該元素的值。使用index值指定刪除的位置In:a=[1,2,3]In:a.pop()Out:3In:aOut:[1,2]按值刪除元素remove(value)移除列表中某個值的第一個匹配項In:a=[1,2,3]In:a.remove(1)In:aOut:[2,3]2.3數(shù)據(jù)結(jié)構(gòu)列表和列表推導(dǎo)式列表操作用途方法說明示例反轉(zhuǎn)列表reverse()反轉(zhuǎn)列表In:a=[1,2,3]In:a.reverse()In:aOut:[3,2,1]排序列表sort(*,key=None,reverse=False)按列表元素大小排序,通過reverse參數(shù)可指定倒序排序In:a=[1,3,2]In:a.sort()In:aOut:[1,2,3]查看列表長度len(object)查看列表中有多少個對象In:a=[1,3,2]In:len(a)Out:32.3數(shù)據(jù)結(jié)構(gòu)列表和列表推導(dǎo)式列表操作用途方法說明示例查看列表長度len(object)查看列表中有多少個對象In:a=[1,3,2]In:len(a)Out:3示例1列表內(nèi)實現(xiàn)簡單的計算,例如,下面的示例實現(xiàn)了從range(5)中循環(huán)取出i并乘2,得到一個列表結(jié)果為[0,2,4,6,8]2.3數(shù)據(jù)結(jié)構(gòu)列表推導(dǎo)式直接在列表內(nèi)做計算,這是Python非常重要的數(shù)據(jù)計算方式。列表和列表推導(dǎo)式[i*2foriinrange(5)]列表推導(dǎo)式示例2通過列表實現(xiàn)一個函數(shù)計算,例如下面的示例,先定義了功能函數(shù),然后在列表推導(dǎo)式中調(diào)用函數(shù)對每個i做計算并返回列表,結(jié)果為[0.0,1.5,3.0,4.5,6.0]2.3數(shù)據(jù)結(jié)構(gòu)列表和列表推導(dǎo)式defsum(n):returnn+n/2[sum(i)foriinrange(5)]列表推導(dǎo)式創(chuàng)建元組創(chuàng)建元組可通過兩種方式:使用小括號()或tuple()方法2.3數(shù)據(jù)結(jié)構(gòu)元組和元組推導(dǎo)式tuple_example1=()tuple_example2=tuple()tuple_example3=(1,True,b'bytes',('a','b'))元組(tuple)是一個不可變的有序集合,其內(nèi)部元素可包括任何數(shù)據(jù)類型。其與列表的顯著性差異是其不可變性獲取元素與列表相同,都是通過索引獲取2.3數(shù)據(jù)結(jié)構(gòu)元組和元組推導(dǎo)式tuple_example3[0]tuple_example3[-1]2.3數(shù)據(jù)結(jié)構(gòu)列表和列表推導(dǎo)式元組操作用途方法說明示例計數(shù)count(value)查看元素的出現(xiàn)次數(shù)In:a=(1,2,2,2,3)In:a.count(2)Out:3查看索引index(value)查看特定值的第一次出現(xiàn)的索引位置In:a=(1,2,2,2,3)In:a.index(2)Out:1查看元組長度len(object)查看元組中有多少個對象In:a=(1,2,2,2,3)In:len(a)Out:5示例通過tuple方法將可迭代對象轉(zhuǎn)換為元組2.3數(shù)據(jù)結(jié)構(gòu)本質(zhì)上,元組沒有推導(dǎo)式的概念,如果參照列表推導(dǎo)式實現(xiàn)后,其結(jié)果是一個生成器對象,而并不是元組本身。列表和列表推導(dǎo)式tuple((i*2foriinrange(5)))元組推導(dǎo)式創(chuàng)建字典創(chuàng)建字典可通過兩種方式:使用大括號{}或dict()方法2.3數(shù)據(jù)結(jié)構(gòu)字典和字典推導(dǎo)式dict_example1={}dict_example2=dict()dict_example3={'tony':98,'lucy':{'firstname':'li'}}dict_example4={}#空字典對象seq=['a','b']#列表由兩個字符串組成,他們將分別作為后續(xù)字典的Keyvalues=[1,2]#列表由兩個數(shù)值組成,他們將作為后續(xù)字典公用的Valuedict_example4=dict_example4.fromkeys(seq,values)#使用fromkeys方法創(chuàng)建了一個新字典,dict_example4的值為:{'a':[1,2],'b':[1,2]}字典是一個可變的集合。字典內(nèi)部的數(shù)據(jù)存儲以Key:Value(鍵值對,中間是冒號)的形式來表示數(shù)據(jù)對象的關(guān)系獲取元素字典內(nèi)元素的獲取與元組和列表不同,它不是通過索引實現(xiàn),而是通過Key(鍵值)實現(xiàn)。同時,字典還有多種獲取不同Key和Value的方法2.3數(shù)據(jù)結(jié)構(gòu)字典和字典推導(dǎo)式values={'tony':98,'lucy':{'firstname':'li'}}#包含嵌套字典的字典values['tony']#獲取字典中Key為tony的值,結(jié)果為98values['lucy']['firstname']#獲取字典中Key為lucy的值,再從值中找到Key為firstname的值,結(jié)果為'li'values.get('tony')#使用字典的get方法獲取Key為tony的值,結(jié)果為98values.keys()#使用字典的keys方法獲取所有的key值,結(jié)果為dict_keys(['tony','lucy']),該類型可使用list轉(zhuǎn)換為列表values.values()#使用字典的values方法獲取values的值,結(jié)果為dict_values([98,{'firstname':'li'}]),該類型可使用list轉(zhuǎn)換為列表values.items()#使用字典的items方法獲取所有的鍵值對組合,結(jié)果為dict_items([('tony',98),('lucy',{'firstname':'li'})])2.3數(shù)據(jù)結(jié)構(gòu)字典和字典推導(dǎo)式字典操作用途方法說明示例刪除所有元素clear()刪除字典內(nèi)所有元素In:a={'a':1,'b':2}In:a.clear()復(fù)制copy()復(fù)制字典對象In:a={'a':1,'b':2}In:b=a.copy()In:bOut:{'a':1,'b':2}2.3數(shù)據(jù)結(jié)構(gòu)字典和字典推導(dǎo)式字典操作用途方法說明示例查看索引setdefault(key,default=None)如果Key不存在與字典中,則設(shè)置默認(rèn)值,與get方法類似In:a={'a':1,'b':2}In:a.setdefault('c',0)In:aOut:{'a':1,'b':2,'c':0}更新字典update(dict)將另一個字典中的信息按key更新到現(xiàn)有字典中In:a={'a':1,'b':2}In:b={'a':'fromb'}In:a.update(b)In:aOut:{'a':'fromb','b':2}2.3數(shù)據(jù)結(jié)構(gòu)字典和字典推導(dǎo)式字典操作用途方法說明示例刪除對應(yīng)的key的值pop(key,[default])刪除字典給定鍵key所對應(yīng)的值,返回值為被刪除的值。如果key不存在,則返回default值。In:a={'a':1,'b':2}In:a.pop('a')Out:1In:aOut:{'b':2}示例2.3數(shù)據(jù)結(jié)構(gòu)字典和字典推導(dǎo)式keys=(str(i*i)foriinrange(3))#通過元組推導(dǎo)式生成包含Value值的生成器values=[i+1foriinrange(3)]#列表推導(dǎo)式生成包含Key值的列表dict_final={k:vfork,vinzip(keys,values)}#通過字典推導(dǎo)式調(diào)用上述兩個對象生成字典,其結(jié)果為:{'0':1,'1':2,'4':3}字典推導(dǎo)式創(chuàng)建集合創(chuàng)建字典可通過兩種方式:使用大括號{}或set()方法2.3數(shù)據(jù)結(jié)構(gòu)集合和集合推導(dǎo)式set_example1={1,2,3}set_example2=set()集合是Python一個特殊的數(shù)據(jù)結(jié)構(gòu),它包含了無序且不重復(fù)的元素。集合與其他數(shù)據(jù)結(jié)構(gòu)的顯著區(qū)別在于其不重復(fù)的特性。注意上面的章節(jié)中也介紹了使用大括號{}創(chuàng)建字典的方法,本節(jié)在創(chuàng)建集合時要求在大括號內(nèi)必須包含值,而不能為空,否則其創(chuàng)建的就是一個字典,而非集合。2.3數(shù)據(jù)結(jié)構(gòu)集合和集合推導(dǎo)式集合操作用途方法說明示例增加元素add(object)向集合內(nèi)增加一個元素In:a={1,2,3}In:a.add(4)In:aOut:{1,2,3,4}移除所有元素clear()移除集合內(nèi)的所有元素In:a={1,2,3}In:a.clear()In:aOut:set()2.3數(shù)據(jù)結(jié)構(gòu)集合和集合推導(dǎo)式集合操作用途方法說明示例復(fù)制集合copy()復(fù)制一個集合In:a={1,2,3}In:b=a.copy()In:bOut:{1,2,3}查找集合差異元素difference(set)查找兩個集合的差異元素In:a={1,2,3}In:b={1,2}In:a.difference(b)Out:32.3數(shù)據(jù)結(jié)構(gòu)集合和集合推導(dǎo)式集合操作用途方法說明示例刪除相同元素difference_update(set)從一個集合上刪除兩個集合中的相同的元素In:a={1,2,3}In:b={2,4}In:a.difference_update(b)In:aOut:{1,3}刪除元素discard(object)刪除集合中的元素In:a={1,2,3}In:a.discard(2)In:aOut:{1,3}2.3數(shù)據(jù)結(jié)構(gòu)集合和集合推導(dǎo)式集合操作用途方法說明示例刪除元素remove(object)元素必須在集合中In:a={1,2,3}In:a.remove(1)In:aOut:{2,3}取不重復(fù)集合symmetric_difference()返回兩個集合中不重復(fù)的元素的集合In:a={1,2,3}In:b={2,4}In:a.symmetric_difference(b)Out:{1,3,4}2.3數(shù)據(jù)結(jié)構(gòu)集合和集合推導(dǎo)式集合操作用途方法說明示例取交集intersection(set)取兩個集合交集In:a={1,2,3}In:b={2,4}In:ersection(b)Out:{2}刪除不同元素intersection_update(set)從一個集合上刪除兩個集合中的不相同的元素In:a={1,2,3}In:b={2,4}In:ersection_update(b)Out:{2}2.3數(shù)據(jù)結(jié)構(gòu)集合和集合推導(dǎo)式集合操作用途方法說明示例刪除重復(fù)元素并添加不重復(fù)元素symmetric_difference_update()刪除兩個集合中重復(fù)元素并將不重復(fù)元素添加到集合In:a={1,2,3}In:b={2,4}In:a.symmetric_difference_update(b)In:aOut:{1,3,4}取并集union(set)取兩個集合的并集In:a={1,2,3}In:b={2,4}In:a.union(b)Out:{1,2,3,4}2.3數(shù)據(jù)結(jié)構(gòu)集合和集合推導(dǎo)式集合操作用途方法說明示例添加集合update(set)向一個集合中添加另一個集合In:a={1,2,3}In:b={2,4}In:a.update(b)In:aOut:{1,2,3,4}2.3數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)類型的判斷方法:type。用法是type(object)Isinstance。用法是isinstance(object,class_or_tuple),其中的class是object的類型,而tuple是類型的元組,該方法返回特定對象是否為class或tuple中定義類型的布爾值數(shù)據(jù)結(jié)構(gòu)的判斷與轉(zhuǎn)換2.3數(shù)據(jù)結(jié)構(gòu)列表和數(shù)組轉(zhuǎn)換列表和元組的相關(guān)轉(zhuǎn)換,只需通過list或tuple方法轉(zhuǎn)換即可數(shù)據(jù)結(jié)構(gòu)的判斷與轉(zhuǎn)換a=[‘1’,‘2’,‘3’]#定義為列表tuple(a)#轉(zhuǎn)換為元組2.4條件表達(dá)式與判斷基本方法為:使用if來定義第一個判斷邏輯,中間判斷邏輯則使用elif方法定義,最后的其他條件要做統(tǒng)一處理時則調(diào)用else方法。單層條件判斷a=1#定義一個變量對象ifa==0:#判斷a是否為0,如果條件為真(為真的情況下返回結(jié)果True)
print('a=0')#打印a=0else:#如果a不為0print('a!=0')#打印a!=02.4條件表達(dá)式與判斷如果邏輯簡單,那么可使用單層判斷;如果斷邏輯復(fù)雜,則需要條件判斷的嵌套。嵌套的過程中,只需在任意if、elif或else環(huán)節(jié),再次使用單層條件判斷的方法即可。嵌套條件判斷a=1#定義了一個變量對象a=1ifa==0:#判斷a是否為0,如果條件為真(為真的情況下返回結(jié)果True)
print('a=0')#打印a=0elifa>0:#判斷a是否大于0,如果條件為真
ifa<=5:#判斷a是否小于等于5,如果條件為真
print('a>0且a<=5')#打印a>0且a<=5else:#判斷a大于5,如果條件為真
print('a>5')#打印a>5else:#其他情況下
print('a<0')#打印a<02.4條件表達(dá)式與判斷在上面的條件中,每個if或elif都是針對單一條件,但在復(fù)雜場景下,需要判斷多個條件是否同時為真。例如上述代碼中可以將當(dāng)a>0且a<=5組合起來實現(xiàn):多條件判斷中的and和ora=1#定義了一個變量對象a=1ifa==0:#判斷a是否為0,如果條件為真(為真的情況下返回結(jié)果True)print('a=0')#打印a=0elifa>0anda<=5:#判斷a大于0且a小于等于5,如果條件為真print('a>0且a<=5')#打印a>0且a<=5elifa>5:#判斷a大于5,如果條件為真print('a>5')#打印a>5else:#其他情況下print('a<0')#打印a<02.4條件表達(dá)式與判斷鏈?zhǔn)奖容^a>0anda<=5可以簡化為0<a<=5多條件判斷中的鏈?zhǔn)奖容^、all和any2.4條件表達(dá)式與判斷all和any的應(yīng)用如果要判斷對象很多,使用多個and或者or往往過于繁瑣,此時可使用all或any方法來判斷同時為真或只有一個為真的條件多條件判斷中的鏈?zhǔn)奖容^、all和anya>0andb<2andc==8,可以寫為all((a>0,b<2,c==8)),同時為真則返回True,否則Falsea>0orb<2orc==8,any((a>0,b<2,c==8)),只要有一個條件為真則返回True,否則False2.4條件表達(dá)式與判斷條件判斷不僅可以用來做功能和流程處理,還能用來賦值,這種方式在賦值邏輯較為復(fù)雜時比較常用。示例:基于條件表達(dá)式的賦值a=1#創(chuàng)建變量a=1b=aifa>1else0#根據(jù)a的值做判斷,當(dāng)a>1時為b賦值1;否則b賦值02.5循環(huán)和流程控制for可以遍歷任何序列對象,例如列表、元組、字典等。for循環(huán)和條件表達(dá)式foriin[1,2,3]:#從列表[1,2,3]中循環(huán)取出每個值
print(i)#打印輸出對應(yīng)值在循環(huán)中,經(jīng)常與條件表達(dá)式使用實現(xiàn)不同的功能,例如:foriin[1,2,3]:#從列表[1,2,3]中循環(huán)取出每個值ifi<=2:#新增了對i的判斷,當(dāng)i<=2時執(zhí)行下面的代碼print(i)#打印輸出對應(yīng)值2.5循環(huán)和流程控制while循環(huán)跟for循環(huán)的思路類似,區(qū)別在于while需要通過條件來實現(xiàn)邏輯控制,而不能像for一樣直接讀取序列對象。上面代碼中,使用while可以表述如下:while循環(huán)和條件表達(dá)式i=1#定義變量對象1whilei<=2:#使用while循環(huán)對i做判斷,只有當(dāng)i<=2時才執(zhí)行下面的程序print("Good")#打印輸出Goodi+=1#對i增加1,表達(dá)式也可以寫為i=i+12.5循環(huán)和流程控制循環(huán)可以嵌套使用,一般用于從每個子元素中獲取更多的可迭代的對象。例如:循環(huán)嵌套nums=[[11],[21,22]]#定義了一個嵌套列表foriinnums:#外層循環(huán),每次讀取nums的一個元素(列表)為iforjini:#內(nèi)層循環(huán),讀取i中的每個元素print(j)#打印i中的每個元素2.5循環(huán)和流程控制while可實現(xiàn)無限循環(huán),即永遠(yuǎn)執(zhí)行的邏輯。這種邏輯在特定場景下也會用到,例如程序?qū)崟r監(jiān)控特定目錄下是否出現(xiàn)文件,如果出現(xiàn)則讀取數(shù)據(jù)和入庫。示例如下。無限循環(huán)whileTrue:#while后面的條件為True,意味著每次循環(huán)都會調(diào)用后面的代碼do_something_here#do_something_here為具體實現(xiàn)邏輯2.5循環(huán)和流程控制在程序的循環(huán)體內(nèi),有時候我們想控制程序在符合某個條件時,終止循環(huán)或跳過當(dāng)次循環(huán),這時可使用break或continue實現(xiàn)。break和continue控制foriin[1,2,3,4]:#從列表[1,2,3,4]循環(huán)讀取iifi<2:#判斷當(dāng)i<3結(jié)果為真時,執(zhí)行下面代碼print(i)#打印輸出ielifi==2:#判斷當(dāng)i為3結(jié)果為真時,執(zhí)行下面代碼continue#略過此次循環(huán),繼續(xù)下一個循環(huán)操作else:#在其他情況下break#意味著終止整個循環(huán)不再繼續(xù)執(zhí)行break用于完全結(jié)束一個循環(huán),跳出循環(huán)體執(zhí)行循環(huán)后面的語句;而continue只是終止本次循環(huán),接著還執(zhí)行后面的循環(huán)可以理解為break是結(jié)束整個循環(huán)體,continue是結(jié)束單次循環(huán)2.5循環(huán)和流程控制break和continue控制foriin[1,2,3,4]:#從列表[1,2,3,4]循環(huán)讀取iifi<2:#判斷當(dāng)i<3結(jié)果為真時,執(zhí)行下面代碼print(i)#打印輸出ielifi==2:#判斷當(dāng)i為3結(jié)果為真時,執(zhí)行下面代碼continue#略過此次循環(huán),繼續(xù)下一個循環(huán)操作else:#在其他情況下break#意味著終止整個循環(huán)不再繼續(xù)執(zhí)行可以理解為break是結(jié)束整個循環(huán)體,continue是結(jié)束單次循環(huán)2.6運算符算術(shù)運算符運算符名稱用途示例+加兩個數(shù)字對象為相加;兩個字符串對象為組合。In:'a'+'b'Out:'ab'-減用于單數(shù)字前面代表負(fù)數(shù);兩個數(shù)字對象表示相減。In:1–2Out:-1*乘兩個數(shù)字對象相乘;單個對象重復(fù)多次。In:'a'*3Out:'aaa'/除兩個數(shù)字對象相除In:1/2Out:0.5%取余返回除法的余數(shù),也叫模運算In:1/2Out:12.6運算符算術(shù)運算符運算符名稱用途示例**冪運算返回x的y次冪In:2**4Out:16//取整返回除數(shù)向下取整的整數(shù)In:1//2Out:02.6運算符賦值運算符運算符名稱用途示例=簡單賦值最簡單的賦值方法In:c=a+bIn:cOut:3+=加法賦值將一個對象加一個數(shù)字后再賦值In:a+=2#等價于a=a+2In:aOut:4-=減法賦值將一個對象減去一個數(shù)字后再賦值In:a-=2#等價于a=a-2In:aOut:02.6運算符賦值運算符運算符名稱用途示例*=乘法賦值將一個對象乘一個數(shù)字后再賦值In:a*=2#等價于a=a*2In:aOut:4/=除法賦值將一個對象除一個數(shù)字后再賦值In:a/=2#等價于a=a/2In:aOut:1.0**=冪賦值將一個對象冪運算一個數(shù)字后再賦值In:a**=2#等價于a=a**2In:aOut:42.6運算符賦值運算符運算符名稱用途示例//=取整賦值將一個對象取整賦值一個數(shù)字后再賦值In:a//=2#等價于a=a//2In:aOut:12.6運算符比較運算符運算符名稱用途示例==等于比較兩個對象是否相等In:a==bOut:False!=不等于比較兩個對象是否不相等In:a!=bOut:True>和>=大于或大于等于比較a是否大于或大于等于In:a>=bOut:True<和<=小于或小于等于比較a是否小于或小于等于bIn:a<=bOut:False2.6運算符邏輯運算符運算符名稱用途示例not非返回相反的邏輯值In:not(a==b)Out:Trueand且a和b同時為真的情況下返回True,否則為FalseIn:a==2andb==1Out:Trueor或a和b有一個為真的情況下返回True,否則為FalseIn:a==2orb==2Out:True2.6運算符成員運算符運算符名稱用途示例in在..中是否在指定序列對象中找到對象In:ainbOut:Truenotin不在…中是否在指定序列對象中找不到對象In:anotinbOut:False2.6運算符身份運算符運算符名稱用途示例is是比較兩個對象是否指向同一個存儲對象In:aisbOut:Falseisnot不是比較兩個對象是否指向不同的存儲對象In:aisnotbOut:Truea,b=1,2#通過賦值表達(dá)式分別為變量a和b賦值為1和2print(id(a),id(b))#通過print方法打印a和b的內(nèi)存地址分別為:87915307292168791530729248判斷a和b是否指向同一個對象2.6運算符運算符優(yōu)先級優(yōu)先級指的是不同運算符在同時出現(xiàn)時,先后或優(yōu)先執(zhí)行的順序。優(yōu)先級高運算符優(yōu)先進(jìn)行運算。下面按照優(yōu)先級從高到低的順序依次列出了除位運算符外的優(yōu)先級(1)算術(shù)運算符:冪運算符**(2)算術(shù)運算符:乘*、除/、取余%、取整//(3)算術(shù)運算符:加法+、減法-(4)比較運算符:小于等于<=、小于<、大于>、大于等于>=2.6運算符運算符優(yōu)先級(5)比較運算符:等于==和不等于!=(6)賦值運算符:等于=、加等于+=、減等于-=、乘等于*=、除等于/=、冪等于**=、取整等于//=(7)身份運算符:是is和不是isnot(8)成員運算符:在in和不在notin(9)邏輯運算符:非not、且and和或or2.7字符串處理和正則表達(dá)式字符串格式化的3種方法使用%格式化字符串。通過format%values的形式傳值,其中format是包含%規(guī)則的字符串,values則是要傳入的值,傳值時可通過位置、字典等方式實現(xiàn)。print('mynameis%s,age%d,height%.2f,money%5.2e,satisfied%.2f%%'%('lucy',33,183.5,1000000000.0,90.365))2.7字符串處理和正則表達(dá)式字符串格式化的3種方法符號用途輔助功能%s格式化為字符串*:定義寬度或小數(shù)位精度-:左對齊0:在數(shù)字前面填充0而非空格m.n:m是最小總的位數(shù),n是小數(shù)點后的位數(shù)%d格式化為整數(shù)%f格式化為浮點數(shù)%e格式化為科學(xué)計數(shù)法來表示浮點數(shù)%%格式化為百分號符號用途%s格式化為字符串2.7字符串處理和正則表達(dá)式字符串格式化的3種方法使用str.format()格式化字符串?;疽?guī)則是通過str.format(values)的方法格式化,其中str是帶有{}規(guī)則的字符串,values則是要傳入的值。print('mynameis{0},age{1},height{2:.2f},money{3:5.2e},satisfied{4:.2%}'.format('lucy',33,183.5,10000000.0,0.90365))(1)通過位置索引獲取結(jié)果:位置索引就是通過{}中不同位置的索引index值獲取對應(yīng)的值,例如{1}代表values序列值中的第二個元素。2.7字符串處理和正則表達(dá)式字符串格式化的3種方法使用str.format()格式化字符串。基本規(guī)則是通過str.format(values)的方法格式化,其中str是帶有{}規(guī)則的字符串,values則是要傳入的值。print('mynameis{},age{},height{:.2f},money{:5.2e},satisfied{:.2%}'.format('lucy',33,183.5,10000000.0,0.90365))(2)通過默認(rèn)位置索引獲取結(jié)果:如果后續(xù)的有序列表已經(jīng)按照{(diào)}出現(xiàn)的順序排列好,那么可省略其中的index值,{}將獲得對應(yīng)后values中的每個位置的值。2.7字符串處理和正則表達(dá)式字符串格式化的3種方法使用str.format()格式化字符串?;疽?guī)則是通過str.format(values)的方法格式化,其中str是帶有{}規(guī)則的字符串,values則是要傳入的值。print('mynameis{name},age{age},height{height:.2f},money{money:5.2e},satisfied{percent:.2%}'.format(name='lucy',age=33,height=183.5,money=10000000.0,percent=0.90365))(3)通過關(guān)鍵字獲取結(jié)果:{}中也支持通過關(guān)鍵字參數(shù)的方式獲得結(jié)果,例如{key}可以獲取參數(shù)key對應(yīng)的value值。2.7字符串處理和正則表達(dá)式字符串格式化的3種方法使用f-strings格式化字符串。該方法在字符串前增加字符f作為標(biāo)志,以{key}為變量傳參,類似于簡化的format關(guān)鍵字傳參方式。name='lucy'#定義name變量age=33#定義age變量height=183.5#定義height變量money=10000000.0#定義money變量percent=0.90365#定義percent變量print(f'mynameis{name},age{age},height{height:.2f},money{money:5.2e},satisfied{percent:.2%}')#在字符串前的f表示這是一個f-strings對象,然后在{}中傳入?yún)?shù)即可示例2.7字符串處理和正則表達(dá)式字符串的編譯執(zhí)行
eval執(zhí)行字符串表達(dá)式。eval函數(shù)可實現(xiàn)字符串表達(dá)式內(nèi)的功能執(zhí)行。c,d='1+2','1==2'#定義了一個兩個字符串變量對象c和dprint(eval(c))#調(diào)用eval方法解析字符串表達(dá)式c,并打印輸出結(jié)果為3print(eval(d))#調(diào)用eval方法解析字符串表達(dá)式d,并打印輸出結(jié)果為False當(dāng)部分功能以字符串的形式存在時,在執(zhí)行時需要將其解析出來然后編譯并執(zhí)行。根據(jù)不同情況可通過eval或compile實現(xiàn)。2.7字符串處理和正則表達(dá)式字符串的編譯執(zhí)行
compile編譯執(zhí)行復(fù)雜功能。如果字符串包含復(fù)雜功能,例如流程、條件等,可通過compile實現(xiàn)編譯,然后調(diào)用exec或eval方法執(zhí)行功能。com_strs='''#定義了一個字符串對象com_strsi=1#定義了變量i為1ifi>0:#判斷i是否大于0,如果為真則執(zhí)行下面的過程print("Good")#打印輸出Good'''com_str=compile(com_strs,'','exec')#使用compile方法將該字符串進(jìn)行編譯exec(com_str)#使用exec方法執(zhí)行編譯好的對象,執(zhí)行后得到結(jié)果為Good2.7字符串處理和正則表達(dá)式內(nèi)置字符串處理方法獲取字符串子集print(s[:4])#獲取前4個字符串,代碼返回thisprint(s[5:8])#獲取第6到第8個字符,代碼返回isprint(s[-8:])#獲取最后8個字符串,代碼返回python!2.7字符串處理和正則表達(dá)式內(nèi)置字符串處理方法拼接與拆分字符串print(s+'a')#拼接字符串s和'a',代碼返回thisispython!aprint(''.join([s,'b']))#拼接列表,代碼返回thisispython!bprint(s.split())#默認(rèn)按空格分隔,默認(rèn)去除所有的空格,代碼返回拆分后的列表['this','is','python!']print(s.split(''))#按指定字符空格分割字符串,代碼返回拆分后的列表['this','is','python!',''],注意列表中包含空字符串不會默認(rèn)去除2.7字符串處理和正則表達(dá)式內(nèi)置字符串處理方法大小寫處理print(s.lower())#字符串全部小寫,代碼返回thisispython!print(s.swapcase())#字符串大小寫互換,代碼返回THISISPYTHON!print(s.capitalize())#字符串首字母大寫,其余小寫,代碼返回Thisispython!print(s.title())#字符串首字母大寫,代碼返回ThisIsPython!2.7字符串處理和正則表達(dá)式內(nèi)置字符串處理方法搜索和替換print(s.find('is'))#搜索字符串is,沒有返回-1,代碼返回為2print(s.find('is',1,2))#從字符串的對應(yīng)索引的[1:2]子集中查找is,代碼返回-1print(s.count('is'))#統(tǒng)計字符串is出現(xiàn)的次數(shù),代碼返回2print(s.rfind('is'))#從右邊開始查找is,代碼返回5print(s.replace('python','python3'))#用python3替換python,代碼返回thisispython3!print(s.replace('python','python3',1))#功能返回結(jié)果同上,指定只替換1次2.7字符串處理和正則表達(dá)式內(nèi)置字符串處理方法去除空格print(s.strip())#只去除兩邊空格,代碼返回結(jié)果thisispython!print(s.lstrip())#只去除左邊空格,代碼返回結(jié)果thisispython!print(s.rstrip())#只去除右邊空格,代碼返回結(jié)果thisispython!print(s.replace('',''))#通過替換方法去除所有的空格,代碼返回結(jié)果thisispython!2.7字符串處理和正則表達(dá)式內(nèi)置字符串處理方法字符串判斷print(s.startswith('python'))#是否以'python'開頭,代碼返回結(jié)果Falseprint(s.endswith(''))#是否以空格結(jié)尾,代碼返回結(jié)果Trueprint(s.isalnum())#是否全為字母或數(shù)字,代碼返回結(jié)果Falseprint(s.isalpha())#是否全為字母,代碼返回結(jié)果Falseprint(s.isdigit())#是否全為數(shù)字,數(shù)字的范圍包括Unicode數(shù)字、byte數(shù)字(單字節(jié))、全角數(shù)字(雙字節(jié)),代碼返回結(jié)果Falseprint(s.isdecimal())#是否全為數(shù)字,數(shù)字的范圍包括Unicode數(shù)字、全角數(shù)字(雙字節(jié)),代碼返回結(jié)果Falseprint(s.isnumeric())#是否全為數(shù)字,數(shù)字的范圍包括Unicode數(shù)字、全角數(shù)字(雙字節(jié))、羅馬數(shù)字、漢字?jǐn)?shù)字,代碼返回結(jié)果Falseprint(s.islower())#是否全為小寫,代碼返回結(jié)果Trueprint(s.isupper())#是否全為大寫,代碼返回結(jié)果Falseprint(s.istitle())#判斷首字母是否為大寫,代碼返回結(jié)果Falseprint(s.isspace())#判斷字符是否為空格,代碼返回結(jié)果False2.7字符串處理和正則表達(dá)式正則表達(dá)式應(yīng)用正則表達(dá)式的語法規(guī)則(1)表示匹配對象的規(guī)則:指通過什么方式來表示要匹配的字符串本身,例如數(shù)字、字符。2.7字符串處理和正則表達(dá)式正則表達(dá)式應(yīng)用運算符說明示例.表示任意字符對象'pyt.on'表示pyt和on中間可以有任意一個字符,因此'python'能匹配到該模式\表示轉(zhuǎn)義字符,將正則表達(dá)式中的特殊符號轉(zhuǎn)義為普通字符'pyt\.on'表示模式本身就是'pyt.on',其中的.不再表示任意字符對象[]表示字符規(guī)則的集合'[0-3]'表示規(guī)則包含從0-3共4個數(shù)字2.7字符串處理和正則表達(dá)式正則表達(dá)式應(yīng)用運算符說明示例\D固定用法,表示任意非數(shù)字字符'\D',相當(dāng)于[^0-9]\s固定用法,表示任意空白字符'\D',相當(dāng)于[\t\n\r\f\v]\S固定用法,表示任意非空白字符'\D',相當(dāng)于[^\t\n\r\f\v]\w固定用法,表示任意數(shù)字和字母'\w',相當(dāng)于[a-zA-Z0-9]\W固定用法,表示任意非數(shù)字和字母'\W',相當(dāng)于[^a-zA-Z0-9]2.7字符串處理和正則表達(dá)式正則表達(dá)式應(yīng)用正則表達(dá)式的語法規(guī)則(2)表示匹配次數(shù)的規(guī)則:指匹配對象多少次。2.7字符串處理和正則表達(dá)式正則表達(dá)式應(yīng)用運算符說明示例*表示匹配前一個字符0到無限次'.*'表示任意字符出現(xiàn)無限次+表示匹配前一個字符1到無限次'\d+'表示任意數(shù)字出現(xiàn)1到無限次?表示匹配前一個字符0到1次'\D?'表示任意非數(shù)字出現(xiàn)0到1次{m}表示匹配前一個字符m次'\w{2}'表示任意數(shù)字和字母出現(xiàn)2次{m,n}表示匹配前一個字符m到n次'\W{2,5}'表示任意非數(shù)字和字母出現(xiàn)2到5次2.7字符串處理和正則表達(dá)式正則表達(dá)式應(yīng)用正則表達(dá)式的語法規(guī)則(3)表示匹配模式的規(guī)則:指匹配以何種模式實現(xiàn),例如開頭、結(jié)尾。2.7字符串處理和正則表達(dá)式正則表達(dá)式應(yīng)用運算符說明示例^表示字符串匹配開頭規(guī)則'^py'表示字符串以py開頭,因此'python'能匹配到該模式$表示字符串
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023-2024學(xué)年四川省瀘州市瀘縣五中高三3月起點調(diào)研數(shù)學(xué)試題試卷
- 大班野蜂飛舞課件
- 飯店合伙經(jīng)營合同(32篇)
- 我爸爸繪本教案
- 少先隊活動計劃
- 【課件】生活中的透鏡+人教版物理八年級上學(xué)期
- 租房協(xié)議模板
- 歷史學(xué)之路探索-專業(yè)啟航與就業(yè)前景
- 新版浙教版2024-2025學(xué)年度八年級數(shù)學(xué)上冊幾何復(fù)習(xí)專題卷含答案
- 二年級識字2教學(xué)教育課件
- 人教版一年級數(shù)學(xué)上冊《第一、二單元測試卷》(附答案)
- 上市公司無形資產(chǎn)管理辦法
- 人教版二年級上冊數(shù)學(xué)計算題400道
- 人教版(2024新版)八年級上冊物理第二章2.5《跨學(xué)科實踐:制作隔音房間模型》教學(xué)設(shè)計
- 供應(yīng)室教學(xué)課件
- 第三單元 測量(單元測試)-2024-2025學(xué)年三年級上冊數(shù)學(xué)人教版
- 華為年財務(wù)報表分析(共16張課件)
- 第10課 讀依依往事 解依依情思《往事依依》教學(xué)設(shè)計-七年級語文上冊同步高效課堂(統(tǒng)編版)
- 第五單元 倍的認(rèn)識(單元測試)-2024-2025學(xué)年三年級上冊數(shù)學(xué)人教版
- 幼兒園中班數(shù)學(xué)活動《營救汪汪隊》
- 2024年指標(biāo)租賃協(xié)議模板(三篇)
評論
0/150
提交評論