Python數(shù)據(jù)分析與數(shù)據(jù)挖掘 課件 第1-3章 Python概述、Python基礎(chǔ)語法、函數(shù)_第1頁
Python數(shù)據(jù)分析與數(shù)據(jù)挖掘 課件 第1-3章 Python概述、Python基礎(chǔ)語法、函數(shù)_第2頁
Python數(shù)據(jù)分析與數(shù)據(jù)挖掘 課件 第1-3章 Python概述、Python基礎(chǔ)語法、函數(shù)_第3頁
Python數(shù)據(jù)分析與數(shù)據(jù)挖掘 課件 第1-3章 Python概述、Python基礎(chǔ)語法、函數(shù)_第4頁
Python數(shù)據(jù)分析與數(shù)據(jù)挖掘 課件 第1-3章 Python概述、Python基礎(chǔ)語法、函數(shù)_第5頁
已閱讀5頁,還剩156頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章Python概述主講人:***15-10月-23Python數(shù)據(jù)分析與數(shù)據(jù)挖掘目錄contentsPython簡介&特點和應(yīng)用領(lǐng)域0102Python開發(fā)環(huán)境的搭建03Python運(yùn)行原理及編寫規(guī)范Python簡介&特點和應(yīng)用領(lǐng)域011.1Python簡介姓名Python出生地荷蘭國家數(shù)學(xué)和計算機(jī)科學(xué)研究所成長地Python社區(qū)出生年月1989.12偶像ABC語言業(yè)界稱號膠水語言父親GuidoVanRossum老師C語言信念讓用戶感覺更好免費(fèi)開源:方便地閱讀它的源代碼、對源代碼進(jìn)行改進(jìn)與應(yīng)用簡單易用:像閱讀英語一樣讀懂代碼提供了豐富的庫:提供了廣泛的標(biāo)準(zhǔn)庫和許多其他高質(zhì)量的庫規(guī)范的代碼風(fēng)格:《PythonEnhancementProposal#8》代碼風(fēng)格指南運(yùn)行效率高:底層以及標(biāo)準(zhǔn)庫等均是C編寫的;避開了編譯、鏈接等障礙1.2

python特點和應(yīng)用領(lǐng)域易于移植、部署:支持所有的主流操作系統(tǒng),并且部署方便可擴(kuò)展、可嵌入:C或者C++進(jìn)行擴(kuò)展、嵌入1.2

python特點和應(yīng)用領(lǐng)域目前Python主要應(yīng)用于Web開發(fā)、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、編寫網(wǎng)絡(luò)爬蟲進(jìn)行數(shù)據(jù)采集、系統(tǒng)管理等領(lǐng)域,Web開發(fā)和數(shù)據(jù)分析是使用Python語言最常見的方式。Python開發(fā)環(huán)境的搭建021.3.1Python下載下載Python的安裝版本/downloads/查看Python的最新源碼,二進(jìn)制文檔

/Python文檔下載/doc/1.3Python開發(fā)環(huán)境搭建Unix&Linux平臺安裝Python打開Web瀏覽器訪問/downloads/source/選擇Unix/Linux的源碼壓縮包下載及解壓壓縮包如果你需要自定義一些選項可修改Modules/Setup執(zhí)行./configure腳本makemakeinstall注意:Python會安裝在/usr/local/bin目錄中Python庫安裝在/usr/local/lib/pythonXX,XX為你使用的Python的版本號1234561.3.2Python安裝Windows平臺安裝Python打開Web瀏覽器訪問/downloads/windows/在下載列表中選擇Windows平臺安裝包,包格式為:python-XYZ.msi文件Windows系統(tǒng)必須支持MicrosoftInstaller2.0搭配使用保存安裝文件到本地計算機(jī)后運(yùn)行,檢查機(jī)器是否支持MSI下載后,雙擊下載包,進(jìn)入Python安裝向?qū)В恍枰褂媚J(rèn)的設(shè)置一直單擊“下一步”按鈕,直到安裝完成即可12341.3.2Python安裝3最流行的Python/R的開源數(shù)據(jù)科學(xué)平臺,提供了在Linux、Windows和MacOSX系統(tǒng)上使用Python的最簡單的方式。Anaconda包含了Python,并使用Conda來管理庫、依賴項和環(huán)境,同時集成了多個科學(xué)包及其依賴項。Anaconda工具包下載安裝數(shù)據(jù)分析包:Dask、NumPy、pandas、Numba等機(jī)器學(xué)習(xí)包:scikit-learn數(shù)據(jù)可視化包:Matplotlib、Bokeh、Datashader、Holoviews等下載地址:

/download/#windows1.4Anaconda的下載安裝1.5.1Jupyter使用1.5Anaconda中的Python開發(fā)環(huán)境是什么:JupyterNotebook是一個開源的Web應(yīng)用程序,是一個集說明性文字、數(shù)學(xué)公式、代碼和可視化圖表于一體的網(wǎng)頁版交互式Python語言運(yùn)行環(huán)境。怎么用:Anaconda菜單--單擊“JupyterNotebook”菜單項--啟動JupyterNotebook。(啟動后默認(rèn)瀏覽器將會自動打開,顯示Jupyter的工作狀態(tài))選擇Upload,實現(xiàn)已有文件的上傳(后綴為.ipynb)

選擇New,實現(xiàn)新建特定類型的文件進(jìn)行編輯和運(yùn)行用途:數(shù)據(jù)清洗和轉(zhuǎn)換、數(shù)值模擬、統(tǒng)計建模、數(shù)據(jù)可視化、機(jī)器學(xué)習(xí)實例化:選擇新建Python3--打開一個新的瀏覽器窗口,在其中按Cell輸入代碼,并在Cell菜單中選擇相應(yīng)的項或單擊

運(yùn)行。1.5.2Spyder使用1.5Anaconda中的Python開發(fā)環(huán)境是什么:Spyder是Python(x,y)的作者開發(fā)的一個跨平臺的集成開發(fā)環(huán)境。和其他的Python開發(fā)環(huán)境相比,它最大的優(yōu)點就是模仿MATLAB的“工作空間”的功能,可以很方便地觀察和修改數(shù)組的值。1.5.2Spyder的使用1.5Anaconda中的Python開發(fā)環(huán)境代碼區(qū)Variableexplorer窗口IPythonconsoleIPythonconsole

窗口代碼區(qū),編寫后,可選擇Run菜單中的相應(yīng)菜單項運(yùn)行。如運(yùn)行整個文件,可單擊Run菜單項或按下F5如只運(yùn)行部分代碼,可選中要執(zhí)行的代碼后單擊Runcell或按下Ctrl+回車。1.5.2Spyder的使用Variableexplorer窗口,觀察當(dāng)前程序中的變量情況,包括變量的名字、類型、大小和取值情況。在某個變量名上雙擊,可以打開窗口查看該變量的詳細(xì)情況。1.5.2Spyder的使用右下側(cè)的是IPythonconsole,顯示代碼的運(yùn)行結(jié)果。我們也可以在IPythonconsole輸入語句,直接運(yùn)行觀察結(jié)果1.5.2Spyder的使用1.5.3使用conda管理包1.5Anaconda中的Python開發(fā)環(huán)境查看已安裝包安裝包卸載和更新包查看已經(jīng)安裝的包:condalist安裝新的包:condainstallpackage_name可以同時安裝多個包:例:condainstallnumpyscipypandas還可以添加版本號:例:condainstall

numpy

=

1.10卸載包:condaremovepackage_name查看某個具體包的安裝情況:condalistpackage_name更新包:condaupdatepackage_name更新環(huán)境中所有包:condaupdate–all1.5.4第三包管理的例子1.5Anaconda中的Python開發(fā)環(huán)境Scikit-learn包的安裝和測試Scikit-learn官網(wǎng)地址:Anaconda中默認(rèn)已經(jīng)安裝了Scikit-learn工具包,我們測試是否正確安裝。1.6使用百度AIStudio云計算編程環(huán)境百度AIStudio(ArtificialIntelligenceStudio,人工智能平臺)是集成了大數(shù)據(jù)和人工智能的云計算平臺。該平臺集合了AI教程、代碼環(huán)境、算法算力和數(shù)據(jù)集,為開發(fā)者提供了免費(fèi)的在線云計算編程環(huán)境,用戶不需要再進(jìn)行環(huán)境配置和依賴包等繁瑣步驟,可以隨時隨地上線AIStudio開展深度學(xué)習(xí)項目。123登錄AIStudio平臺平臺的網(wǎng)址為:創(chuàng)建項目啟動并運(yùn)行項目1.6使用百度AIStudio云計算編程環(huán)境Python運(yùn)行原理及編寫規(guī)范03解釋器將程序代碼編譯為字節(jié)碼,字節(jié)碼在Python虛擬機(jī)程序里對應(yīng)的是PyCodeObject對象,而字節(jié)碼在磁盤上是以后綴為.pyc文件的形式存在,默認(rèn)放置在Python安裝目錄的_pycache_文件夾下。由開發(fā)人員編寫程序代碼,也就是編碼階段,此時產(chǎn)生的文件是以.py為后綴的。解釋器將編譯好的字節(jié)碼載入一個Python虛擬機(jī)中,由虛擬機(jī)一條一條執(zhí)行字節(jié)碼指令,進(jìn)而完成程序的運(yùn)行。1.7Python的運(yùn)行原理

Python的代碼塊不使用大括號{}或者begin…end來控制類、函數(shù)以及其他邏輯判斷,而是使用代碼縮進(jìn)和冒號來分隔代碼塊。Python接受空格和制表符作為縮進(jìn),但是需要注意的是空格和制表符不能混用??s進(jìn)的數(shù)量是可變的,但要求所有的代碼塊語句須包含相同的縮進(jìn)量,一般使用一個制表符或者四個空格來表示特定的代碼塊。當(dāng)采用了不合理的代碼縮進(jìn)時,會出現(xiàn)錯誤。1.8Python的編寫規(guī)范行和縮進(jìn)

Python語句中一般以新行作為語句的結(jié)束符。但是我們可以使用斜杠“\”或者括號:[]、{}、()將一行的語句分為多行顯示。1.8Python編寫規(guī)范多行語句

Python中引號(‘)、雙引號(“)、三引號(’‘’或”“”)都可以用來表示字符串,需要注意的是引號的開始與結(jié)束必須的相同類型的。

一般情況下,單引號和雙引號的效果是一樣的,但在字符串中包含單引號的時候,使用雙引號可以省略轉(zhuǎn)義字符,更有利于避免錯誤、提高可閱讀性。同理,如果字符串中包含雙引號,則使用單引號會使代碼看起來更加簡化。1.8Python編寫規(guī)范Python引號

三引號可以由多行組成,編寫多行文本的快捷語法,常用于文檔字符串。

三引號還起到了換行的作用。同時,三引號還有一個特別的作用,就是在文件的特定地點,可以起到注釋的作用。1.8Python編寫規(guī)范Python引號Python中使用“#”來進(jìn)行單行注釋。1.8Python編寫規(guī)范Python注釋Python中使用三引號來進(jìn)行多行注釋,其中三個單引號(’’’)和三個雙引號(”””)的作用是一樣的。第一章Python概述謝謝!Python數(shù)據(jù)分析與數(shù)據(jù)挖掘第2章Python基礎(chǔ)語法主講人:***15-10月-23Python數(shù)據(jù)分析與數(shù)據(jù)挖掘目錄contents標(biāo)識符與變量0102輸入與輸出03Python數(shù)據(jù)結(jié)構(gòu)04運(yùn)算符與表達(dá)式程序的流程控制052.1標(biāo)識符與變量012.1.1

Python標(biāo)識符Python中的標(biāo)識符可以由英文、數(shù)字以及下劃線(_)組成,但不能以數(shù)字開頭。Python中的標(biāo)識符是區(qū)分大小寫的。以下劃線開頭的標(biāo)識符有特殊意義:以單下劃線開頭的(如_test)代表不能直接訪問的類屬性,需通過類提供的接口進(jìn)行訪問,不能用fromxxximport*的形式導(dǎo)入;以雙下劃線開頭的(如__test)代表類的私有成員;以雙下劃線開頭和結(jié)尾的(如__test__)代表Python里特殊方法專用的標(biāo)識,如__init__()代表類的構(gòu)造函數(shù)。2.1.2

Python關(guān)鍵字關(guān)鍵字是在Python內(nèi)部已經(jīng)使用的標(biāo)識符,這些關(guān)鍵字不能用作常數(shù)或變數(shù),或任何其他標(biāo)識符名稱??梢允褂萌缦抡Z句查看Python中的關(guān)鍵字。[例2-1]查看Python中的關(guān)鍵字。2.1.3變量與賦值Python的變量一般不需要聲明,可以根據(jù)賦值給變量的數(shù)據(jù)來自動確定變量的類型,然后分配相應(yīng)的存儲空間。

定義一個變量,就是向內(nèi)存申請一個帶地址的訪問空間對象,用來存儲數(shù)據(jù),可以通過變量名找到(指向)這個值。內(nèi)存中變量主要包括變量的標(biāo)識、名稱和數(shù)據(jù)這些信息。每個變量在使用前都必須賦值,變量賦值以后該變量才會被創(chuàng)建。等號(=)用來給變量賦值。等號(=)運(yùn)算符左邊是一個變量名,等號(=)運(yùn)算符右邊是存儲在變量中的值。2.2輸入與輸出022.2.1數(shù)據(jù)輸入Python中從鍵盤輸入數(shù)據(jù)可以使用input()函數(shù),該函數(shù)的返回值是字符串。語法:變量名=input(“輸入提示信息字符串”)功能:從標(biāo)準(zhǔn)輸入讀取一行,并以字符串形式返回,去掉結(jié)尾的換行符。[例2-2]input函數(shù)輸入數(shù)據(jù)

Input函數(shù)[例2-3]input函數(shù)外使用類型轉(zhuǎn)換函數(shù)

2.2.1數(shù)據(jù)輸入Python可以使用eval函數(shù)接收多個數(shù)據(jù)輸入,字符串?dāng)?shù)據(jù)輸入時要帶上引號,間隔符必須是逗號。語法:eval(expression[,globals[,locals]])功能:eval()函數(shù)用來執(zhí)行一個字符串表達(dá)式,并返回表達(dá)式的值。[例2-4]eval函數(shù)輸入數(shù)據(jù)

eval函數(shù)2.2.1數(shù)據(jù)輸入input()函數(shù)會把所有輸入值(包括數(shù)字)視為字符串。若a=input(),輸入數(shù)字123后,用type(a)輸出a的類型,將顯示為<class'str'>

eval()函數(shù)將會去掉字符串最外層的引號,將其解釋為一個變量。

若b=eval(input()),輸入數(shù)字123后,用type(b)輸出b的類型,將顯示為<class'int'>,即整型。input函數(shù)和eval函數(shù)區(qū)別2.2.2數(shù)據(jù)輸出

Python中最常用的數(shù)據(jù)輸出方式就是使用print()函數(shù),與相關(guān)格式化函數(shù)組合使用,如:使用(%)或str.format()函數(shù)來格式化輸出值;用repr()或str()函數(shù)將輸出的值轉(zhuǎn)成字符串。語法:print(*objects,sep='',end='\n',file=sys.stdout,flush=False)功能:把objects中每個對象都轉(zhuǎn)化為字符串的形式,然后寫到file參數(shù)指定的文件中,默認(rèn)是標(biāo)準(zhǔn)輸出(sys.stdout)。每一個對象之間用sep所指的參數(shù)進(jìn)行分隔,默認(rèn)是空格。所有對象都寫到文件后,會寫入end參數(shù)所指字符,默認(rèn)是換行。2.2.2數(shù)據(jù)輸出格式:%[(name)][flags][width].[precision]typecode[例2-5]字符串百分號(%)格式化輸出

字符串%格式輸出常見格式化對照說明輸出類型格式說明整數(shù)輸出%o按oct八進(jìn)制輸出整數(shù)%d按dec十進(jìn)制輸出整數(shù)%x按hex十六進(jìn)制輸出整數(shù)浮點數(shù)輸出%f保留小數(shù)點后面六位有效數(shù)字%.nf,保留n位小數(shù)位%e保留小數(shù)點后面六位有效數(shù)字,指數(shù)形式輸出%.3e,保留3位小數(shù)位,使用科學(xué)計數(shù)法%g在保證六位有效數(shù)字的前提下,使用小數(shù)方式,否則使用科學(xué)計數(shù)法,%.3g,保留3位有效數(shù)字,使用小數(shù)或科學(xué)計數(shù)法字符串輸出%s字符串輸出%10s右對齊,占位符10位%-10s左對齊,占位符10位%.2s截取2位字符串%10.2s10位占位符,截取兩位字符串2.2.2數(shù)據(jù)輸出Format()函數(shù)把字符串當(dāng)成一個模板,通過傳入的參數(shù)進(jìn)行格式化,并且使用大括號‘{}’作為特殊字符代替‘%’格式:[[fill]align][sign][#][0][width][,][.precision][type][例2-6]按位置訪問參數(shù)輸出實例。

format函數(shù)格式化輸出[例2-8]對齊文本并指定寬度輸出實例。[例2-7]按名稱訪問參數(shù)輸出實例[例2-9]編寫程序,輸入三個分?jǐn)?shù),計算并輸出平均分,輸出結(jié)果保留2位小數(shù)。2.2.3輸入和輸出實踐例題2.2.3輸入和輸出實踐例題[例2-10]編寫程序,將華氏溫度轉(zhuǎn)成攝氏溫度,換算公式:C=(H-32)*5.0/9,其中C是攝氏溫度,H是華氏溫度。[例2-11]打印99乘法表,并按左下三角格式輸出。2.2.3輸入和輸出實踐例題2.3Python數(shù)據(jù)結(jié)構(gòu)032.3.1標(biāo)量-基本數(shù)據(jù)類型Python使用對象模型來存儲數(shù)據(jù),每一個數(shù)據(jù)類型都有一個相對應(yīng)的內(nèi)置類,新建一個數(shù)據(jù),實際就是在初始化并生成一個對象?;緮?shù)據(jù)類型主要包括:整型(int):可以是正整數(shù)或負(fù)整數(shù),無小數(shù)點、無大小限制。整數(shù)類型包括:十進(jìn)制整數(shù)、二進(jìn)制整數(shù)(以0b開頭)、八進(jìn)制整數(shù)(以0o開頭)及十六進(jìn)制整數(shù)(以0x開頭)。浮點型(float):由整數(shù)部分和小數(shù)部分組成,也可以使用科學(xué)計數(shù)法表示。布爾型(bool):運(yùn)算結(jié)果是True和False常量,這兩個常量的值仍然是1和0,可以和數(shù)值型數(shù)據(jù)進(jìn)行運(yùn)算。復(fù)數(shù)(complex):由實數(shù)部分和虛數(shù)部分構(gòu)成,可以用a+bj,或者complex(a,b)表示,復(fù)數(shù)的實部a和虛部b都是浮點型。

[例2-12]數(shù)值數(shù)據(jù)類型及轉(zhuǎn)換測試。

2.3.2序列類型序列類型包括列表、元組和字符串,這些類型有相同的訪問模式,包括:可以通過下標(biāo)位移量來訪問序列中的元素,可以通過切片的方式一次性得到列表中多個元素。序列的常用操作符(注意優(yōu)先級順序從高到低)方法說明Seq[index]返回序列中下標(biāo)為index的元素Seq[in1:in2]返回序列中下標(biāo)從in1到in2之間的元素集合Seq[i:j:k]按間隔k,返回序列中下標(biāo)從i到j(luò)之間的元素集合Seq*n序列重復(fù)n次Seq1+Seq2兩個序列連接elementinseq判斷元素是否在序列中elementnotinseq判斷元素是否不在序列中s.index(x[,

i[,

j]])x在s中首次出現(xiàn)的索引(或在索引i處或之后,在索引j之前)seq.count(x)返回x在序列中出現(xiàn)的次數(shù)2.3.2序列類型序列類型的類型轉(zhuǎn)換函數(shù)可以用來在列表、元組和字符串幾種序列類型間進(jìn)行轉(zhuǎn)換。表2-3序列類型轉(zhuǎn)換函數(shù)

函數(shù)說明list(iter)把可迭代對象轉(zhuǎn)換為列表tuple(obj)把一個可迭代對象轉(zhuǎn)換為元組對象str(obj)把obj對象轉(zhuǎn)換為字符串對象其他常用序列類型函數(shù):len()、max()、min()、sorted(),請自行練習(xí)。

2.3.2序列類型1、創(chuàng)建:用方括號括起所有元素,并且元素之間用逗號分隔。一對空的方括號表示空列表。列表2、截?。菏褂梅嚼ㄌ?[])的切片,其中,列表使用從前往后從0開始的正向索引或從-1開始的從后往前的逆向索引來標(biāo)注元素的位置列表的數(shù)據(jù)項可以進(jìn)行修改或更新:使用del語句來刪除列表的元素。列表運(yùn)算符“+”用于合并列表,“*”用于重復(fù)列表。[例2-14]列表的截取。[例2-13]列表的創(chuàng)建

2.3.2序列類型3、列表方法列表方法說明list.append(x)添加元素x到列表末尾list.extend(iter)將另一個列表添加到列表的末尾list.insert(i,x)在下標(biāo)為i的元素之前加入一個元素list.remove(x)從列表里刪除第一個值為x的元素list.pop([i])刪除列表中給定位置的項,然后將其返回。如果沒有指定索引,a.pop()將刪除并返回列表中的最后一項list.clear()從列表中刪除所有元素list.count(x)返回x出現(xiàn)在列表中的次數(shù)list.sort(key=None,reverse=False)對原列表中的項目進(jìn)行排序list.reverse()反轉(zhuǎn)列表元素list.copy()返回列表的shadow副本。相當(dāng)于a[:]3.1序列類型列表4、解析:對列表中的每個元素應(yīng)用一個函數(shù)進(jìn)行計算,從而將一個列表映射為另一個列表,稱為列表解析。列表解析的基本語法格式如下:[<表達(dá)式>for<變量>in<列表>][<表達(dá)式>for<變量>in<列表>if<條件>][例2-16]列表實例,注意以下兩種寫法等價:[例2-17]列表的解析

2.3.2序列類型元組是元素的有序序列,與列表類似不同之處在于元組中的元素值不能修改。元組的創(chuàng)建很簡單,只需要在括號中添加元素,并使用逗號隔開即可,元組中沒有append,extend和insert等方法。元組的內(nèi)置函數(shù)包括len,max,min,tuple等。[例2-18]元組的創(chuàng)建及訪問。元組2.3.2序列類型Python中的字符串是一個有序字符的集合,用于表示和存儲文本信息。字符串可以使用單引號(')、雙引號(")或三引號(''')來創(chuàng)建。其中,三引號允許一個字符串跨多行,字符串中可以包含換行符、制表符以及其他特殊字符。Python中,可以使用‘+’、“*”等運(yùn)算符對字符串進(jìn)行連接及重復(fù)等運(yùn)算。Python提供了豐富的字符串內(nèi)建函數(shù),可以對字符串實現(xiàn)查找、檢測、大小寫轉(zhuǎn)換等功能。字符串[例2-19]字符串創(chuàng)建。[例2-20]字符串的運(yùn)算符。字符串常用的字符串運(yùn)算符2.3.2序列類型常用的字符串內(nèi)建函數(shù)字符串[例2-21]字符串的內(nèi)建函數(shù)。2.3.3映射類型-字典字典是Python中一種非常有用的映射類型,可以存儲任意類型對象。字典中的每個數(shù)據(jù)稱作項,項由鍵/值對組成,每個鍵/值對(key=>value)用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中,格式如下所示:dict={key1:value1,key2:value2}常見操作:訪問字典中的值增加新的鍵/值對修改或刪除已有鍵/值對刪除字典元素檢測字典中是否存在鍵

[例2-22]字典實例

2.3.4集合類型Python中的集合(set)是不重復(fù)元素的無序集合。常用功能:成員關(guān)系測試,消除重復(fù)元素,科學(xué)計算,如并、交、差、對稱差等。分類:可變集合(set)、不可變集合(frozenset)可變集合:可以添加和刪除元素不可變集合:不允許添加和刪除元素[例2-23]集合實例

2.3.5數(shù)據(jù)結(jié)構(gòu)實踐例題[例2-24]列表實例,用列表判斷輸入的字符串是不是回文。[例2-25]

集合實例,用0-10間的隨機(jī)數(shù)生成一個長度為20的列表,統(tǒng)計其中各個數(shù)出現(xiàn)的頻率。[例2-26]列表實例,從鍵盤輸入一個單詞sdel,將字符串sall中與sdel相同的單詞都刪除。[例2-27]字符串實例,愷撒密碼,也稱移位密碼,是最簡單和最廣為人知的加密技術(shù)之一。它是一種替換密碼,其中明文中的每一個字母都被一個字母替換,這個字母在字母表中的位置是固定的。例如,如果右移2,a將被c替換,b將變?yōu)閐,依此類推,如圖2.2所示。這種方法是以凱撒大帝的名字命名的,他在私人信件中使用了這種方法。[例2-28]字典實例,統(tǒng)計data目錄下文件ci.txt中保存的歌曲“Myheartwillgoon”中的詞頻,將詞頻排在前10的單詞輸出。運(yùn)算符與表達(dá)式042.4運(yùn)算符與表達(dá)式賦值運(yùn)算符:=(簡單的賦值運(yùn)算符),+=(加法賦值運(yùn)算符),-=(減法賦值運(yùn)算符),*=(乘法賦值運(yùn)算符),/=(除法賦值運(yùn)算符),%=(取模賦值運(yùn)算符),**=(冪賦值運(yùn)算符),//=(取整除賦值運(yùn)算符)等。算術(shù)運(yùn)算符:+(加),-(減)

,*(乘),/(除),%(取模,返回除法的余數(shù)),**(冪,返回x的y次冪),//(取整除,向下取接近除數(shù)的整數(shù))等。比較運(yùn)算符:==(等于,比較對象是否相等),!= (不等于,比較兩個對象是否不相等),>(大于,返回x是否大于y),< (小于,返回x是否小于y),>=(大于等于,返回x是否大于等于y),<=(小于等于,返回x是否小于等于y)。邏輯運(yùn)算符:and(與),or(或)和not(非)。Python中的運(yùn)算符包括:賦值運(yùn)算符、算術(shù)運(yùn)算符、比較(關(guān)系)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、成員運(yùn)算符等。

表達(dá)式是將不同類型的數(shù)據(jù)(常量、變量、函數(shù))用運(yùn)算符按照一定的規(guī)則連接起來的式子。2.4運(yùn)算符與表達(dá)式實例[例2-29]算術(shù)運(yùn)算符實例,計算圓錐體的體積和表面積。[例2-30]邏輯運(yùn)算符實例,閏年判斷。2.4運(yùn)算符與表達(dá)式實例流程控制052.5.1順序結(jié)構(gòu)順序結(jié)構(gòu)是流程控制中最簡單的一種結(jié)構(gòu),該結(jié)構(gòu)的特點是按照語句的先后次序依次執(zhí)行,每條語句只執(zhí)行一次。[例2-31]計算橢球的表面積和體積。[例2-32]繪制正方形。1、if-else條件語句if條件:

條件為真時要執(zhí)行的語句塊else:

條件為假時要執(zhí)行的語句塊2、if-elif-else判斷語句if條件1:

條件1為真時執(zhí)行的語句塊1elif條件2:

條件1為假且條件2為真時執(zhí)行的語句塊2elif條件n:

條件1至條件n-1全部為假且條件n為真時執(zhí)行的語句塊nelse:

上述條件都不滿足時執(zhí)行的語句塊n+14、switch語句的替代方案定義一個字典調(diào)用字典的get()獲取相應(yīng)的表達(dá)式。3、if語句的嵌套if條件1: if條件2:

條件1為真且條件2為真時執(zhí)行的語句塊1 else:

條件1為真且條件2為假時執(zhí)行的語句塊2else:條件1為假時執(zhí)行的語句塊32.5.2選擇結(jié)構(gòu)2.5.2選擇結(jié)構(gòu)實例[例2-33]從用戶輸入的三個數(shù)中輸出最大的數(shù)。[例2-34]猜數(shù)字游戲。2.5.2選擇結(jié)構(gòu)實例[例2-35]成績等級換算[例2-36]身體質(zhì)量指數(shù)BMI計算,計算方法如圖2.3所示。2.5.2選擇結(jié)構(gòu)實例[例2-37]判斷三角形的類型。[例2-38]判斷駕駛員酒醉駕。2.5.2選擇結(jié)構(gòu)[例2-39]簡單的計算器。[例2-40]阿拉伯?dāng)?shù)字轉(zhuǎn)換。2.5.3循環(huán)結(jié)構(gòu)循環(huán)是指在滿足一定條件的情況下,重復(fù)執(zhí)行一組語句的結(jié)構(gòu),其中重復(fù)執(zhí)行的語句稱作循環(huán)體。循環(huán)結(jié)構(gòu)設(shè)計三要素如下:初始化語句:循環(huán)控制變量賦初值或其他循環(huán)中用到的變量的初始化。循環(huán)條件:循環(huán)結(jié)構(gòu)繼續(xù)執(zhí)行的條件,是一個結(jié)果為True或False的表達(dá)式。迭代語句:通常是循環(huán)控制變量的改變,且朝著循環(huán)結(jié)束條件的方向變化,從而使得循環(huán)可以正常結(jié)束。2.5.3循環(huán)結(jié)構(gòu)語法格式: [初始化語句] while(循環(huán)條件):

語句塊

[迭代語句][例2-41]自然數(shù)求和。While循環(huán)[例2-42]判斷計算結(jié)果。2.5.3循環(huán)結(jié)構(gòu)for語句的基本形式:for<變量>in<序列>:循環(huán)體語句塊其中,序列可以是等差數(shù)列、字符串、列表、元組或者是一個文件對象。for循環(huán)[例2-43]計算分?jǐn)?shù)之和。[例2-44]計算1-2+3-4+……+999-1000之和。2.5.3循環(huán)結(jié)構(gòu)break語句:中途從循環(huán)結(jié)構(gòu)中退出。continue語句:跳過循環(huán)體中未執(zhí)行的語句,返回到循環(huán)體的頭部繼續(xù)執(zhí)行新一輪的循環(huán)。Break&continue[例2-45]用戶登錄模擬[例2-46]計算最大公約數(shù)和最小公倍數(shù)。2.5.3循環(huán)結(jié)構(gòu)Python支持在循環(huán)語句中關(guān)聯(lián)else語句。如果else語句和for循環(huán)語句一起使用,else塊只在for循環(huán)正常終止時執(zhí)行(而不是遇到break語句),如果else語句用在while循環(huán)中,當(dāng)條件變?yōu)镕alse時,則執(zhí)行else語句。[例2-47]判斷素數(shù)。循環(huán)中的else語句2.5.3循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)的循環(huán)體內(nèi)可以包含任意Python語句,因此也可以包含另外的循環(huán)結(jié)構(gòu),稱為嵌套循環(huán)。特點:最外層的循環(huán)稱為外循環(huán),所包含的循環(huán)稱為內(nèi)循環(huán);內(nèi)循環(huán)必須完全包含在外循環(huán)中;外循環(huán)和內(nèi)循環(huán)的控制變量不能相同;在嵌套循環(huán)結(jié)構(gòu)中,嵌套的層數(shù)可以是任意的。嵌套循環(huán)[例2-48]輸出三位的水仙花數(shù),它的每個位上的數(shù)字的3次冪之和等于它本身(例如:1^3+5^3+3^3=153)2.5.3循環(huán)結(jié)構(gòu)在循環(huán)結(jié)構(gòu)中,for或while語句之后必須緊跟至少包含一條語句的縮進(jìn)語句塊,然而有些情況下需要一個沒有循環(huán)體語句塊的循環(huán)結(jié)構(gòu),這種情況可以使用pass語句,pass語句是一個“什么也不做”的占位符語句。[例2-49]選擇與循環(huán)結(jié)構(gòu)實例,判斷10以內(nèi)的素數(shù)。Pass語句本章實踐例題062.6本章實踐例題[例2-50]用循環(huán)實現(xiàn)猜拳游戲。2.6本章實踐例題[例2-51]用循環(huán)實現(xiàn)猜數(shù)字游戲。2.6本章實踐例題[例2-52]用循環(huán)和條件判斷實現(xiàn)評分過程模擬。2.6本章實踐例題[例2-53]用輸入、輸出、循環(huán)及條件判斷語句實現(xiàn)身份證信息檢索。小結(jié)077小結(jié)本章主要介紹了Python的基礎(chǔ)語法,包括標(biāo)識符于變量、輸入和輸出、Python數(shù)據(jù)結(jié)構(gòu)、運(yùn)算符與表達(dá)式、Python中的流程控制語句等。重點介紹了Python中的標(biāo)量(Scaler)、序列(Sequence)和映射(Mapping)三種數(shù)據(jù)結(jié)構(gòu),并結(jié)合多個實踐例題講解了多種數(shù)據(jù)結(jié)構(gòu)的應(yīng)用方法。通過本單元學(xué)習(xí),可以掌握Python中的順序、選擇及循環(huán)結(jié)構(gòu)的程序設(shè)計。本章習(xí)題082.8本章習(xí)題1.編寫程序,輸入球的半徑r,輸出球的表面積和體積(結(jié)果保留三位小數(shù))。提示:球的表面積計算公式為:4πr2,球的體積計算公式為:4/3πr3。1.編寫程序,輸入球的半徑r,輸出球的表面積和體積(結(jié)果保留三位小數(shù))。提示:球的表面積計算公式為:4πr2,球的體積計算公式為:4/3πr3。2.用戶輸入一個三位自然數(shù),計算并輸出其百位、十位和個位上的數(shù)字。3.已知列表li=['apple','banana','cherry','grape','orange'],請依次完成以下操作:(1)計算列表長度并輸出;(2)修改列表第2個位置的元素為“peach”,并輸出修改后的列表;(3)刪除列表中的第2至4個元素,并輸出列表;(4)列表中追加元素“strawberry”,并輸出列表;(5)在列表的第1個位置插入元素“pear”,并輸出添加后的列表;(6)將列表所有的元素反轉(zhuǎn),并輸出反轉(zhuǎn)后的列表;(7)使用for、len、range輸出列表的索引;(8)使用enumrate輸出列表元素和序號(序號從100開始)。2.8本章習(xí)題4.任意輸入三個英文單詞,按字典順序輸出。5.輸出100-200內(nèi)的所有素數(shù)。6.字符個數(shù)統(tǒng)計,統(tǒng)計給定字符串中的字符個數(shù)并輸出。7.由數(shù)字1,2,3,4能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?請輸出這些數(shù)字?8.輸入一個字符串,分別統(tǒng)計其中字符、空格、數(shù)字、其他字符出現(xiàn)的次數(shù),請用字典結(jié)構(gòu)實現(xiàn)?第二章Python基礎(chǔ)語法謝謝!Python數(shù)據(jù)分析與數(shù)據(jù)挖掘第3章函數(shù)主講人:***15-10月-23Python數(shù)據(jù)分析與數(shù)據(jù)挖掘目錄contents函數(shù)概述0102函數(shù)的定義03參數(shù)傳遞04函數(shù)參數(shù)設(shè)置匿名函數(shù)0506遞歸函數(shù)3.1函數(shù)概述013.1.1模塊和包Python程序是由函數(shù)(Function)、模塊(Module)和包(Package)組成。其中,模塊是處理某一類問題的變量、函數(shù)和類的集合,包是由一系列模塊組成的集合。模塊是一個Python文件,以.py結(jié)尾,模塊中能定義函數(shù)、類和變量,模塊里也能包含可執(zhí)行的代碼,運(yùn)用模塊能夠有邏輯地組織Python代碼段。常用的模塊導(dǎo)入方式:importmodule1(模塊名)frommodule1import*(*表示導(dǎo)入該模塊中所有函數(shù)及變量等)frommodule1importname1(表示導(dǎo)入模塊中的一個指定的部分)包是一個分層次的文件目錄結(jié)構(gòu),它定義了一個由模塊及子包和子包下的子包等組成的Python的應(yīng)用環(huán)境。簡單來說,包就是文件夾,但該文件夾下必須存在__init__.py文件,該文件的內(nèi)容可以為空。__init__.py用于標(biāo)識當(dāng)前文件夾是一個包。3.1.1模塊和包3.1.2函數(shù)如果在開發(fā)程序時,需要某塊代碼多次,但是為了提高編寫的效率以及代碼的重用,所以把具有獨(dú)立功能的代碼塊組織為一個小模塊,這就是函數(shù)。函數(shù)是Python為了代碼效率的最大化,減少冗余而提供的最基本的程序結(jié)構(gòu)。函數(shù)是一段代碼,通過名字來進(jìn)行調(diào)用,它能將一些數(shù)據(jù)(參數(shù))傳遞進(jìn)去進(jìn)行處理,然后返回一些數(shù)據(jù)(返回值),也可以沒有返回值。3.2函數(shù)的定義023.2函數(shù)的定義函數(shù)定義的格式:def函數(shù)名():

函數(shù)體注意:函數(shù)定義后,如果不經(jīng)調(diào)用,函數(shù)將不會被執(zhí)行Python中自定義函數(shù)創(chuàng)建的方法如下,使用關(guān)鍵字def定義函數(shù),其后緊接函數(shù)名,括號內(nèi)包含了將要在函數(shù)體中使用的形式參數(shù)(簡稱:形參,調(diào)用函數(shù)時的為實參;函數(shù)可以有參數(shù),也可以沒有,但必須保留括號),以冒號結(jié)束。然后另起一行編寫函數(shù)體,函數(shù)體的縮進(jìn)為4個空格或者一個制表符。[例3-1]函數(shù)的定義舉例。3.2函數(shù)的定義[例3-2]用函數(shù)實現(xiàn)fabonaci序列。3.2函數(shù)的定義3.3參數(shù)傳遞03Python中函數(shù)參數(shù)的傳遞,可以分為實參為不可變對象的傳遞和實參為可變對象的傳遞。字符串、元組、數(shù)值等類型是不可更改的對象,而列表和字典等則是可以修改的對象。若實參為不可變對象時,即使函數(shù)體中修改了形參,實參的值在函數(shù)調(diào)用返回時仍然保持不變;如果函數(shù)調(diào)用時,參數(shù)為可變對象的傳遞,若函數(shù)體中修改了形參,則實參的值會隨之發(fā)生改變。3.3.1實參變量指向不可變變量實參變量可以指向不可變的對象,如整型。不可變對象是指對象所指向的內(nèi)存中的值不能被改變,當(dāng)改變這個變量的時候,原來指向的內(nèi)存中的值不變,變量不再指向原來的值,而是開辟一塊新的內(nèi)存,變量指向新的內(nèi)存。[例3-3]實參變量指向不可變對象實例。3.3.1實參變量指向不可變對象分析:在Python中,類型屬于對象,變量是沒有類型的,變量只是指向了對象。本例函數(shù)調(diào)用時,在參數(shù)傳遞后,實參變量x和形參變量a都指向?qū)ο?(整型)。在函數(shù)change()內(nèi),對a賦新值4,即a+1后,由于不可變對象的值不能變化,所以為4分配新的內(nèi)存單元,同時使a指向這個對象。函數(shù)調(diào)用返回時,由于變量x和a指向了不同的對象,而x所指向的不可變對象內(nèi)存地址一直沒變,所以輸出的x的值也不變。實參變量可以指向可變對象,如列表。可變對象是指對象的值可以改變,當(dāng)更改這個變量的時候,還是指向原來的內(nèi)存地址,只是在原來的內(nèi)存地址進(jìn)行值的修改,并沒有開辟新的內(nèi)存。3.3.2實參變量指向可變變量[例3-4]實參變量指向可變對象實例。3.3.2實參變量指向可變變量分析:本例函數(shù)調(diào)用時,在參數(shù)傳遞后,實參變量x和形參變量a都指向同一個列表(list)對象[1,2]。由于列表對象本身是可以改變的,因此在change函數(shù)里,向列表中加入一個元素,不會重新創(chuàng)建對象,而是直接在原對象中添加了新的元素。調(diào)用結(jié)束后,變量x和a仍然指向同一對象,改變a指向?qū)ο蟮闹狄簿透淖兞藊的指向?qū)ο蟮闹怠?.4函數(shù)參數(shù)設(shè)置043.4.1函數(shù)參數(shù)類型Python中的函數(shù)參數(shù)主要有以下四種:位置參數(shù):調(diào)用函數(shù)時,根據(jù)函數(shù)定義的參數(shù)位置來傳遞參數(shù),實參的個數(shù)和順序必須和形參保持一致,否則會拋出異常。默認(rèn)參數(shù):在定義函數(shù)時,為部分形參設(shè)置了默認(rèn)值,調(diào)用函數(shù)時可傳或不傳該默認(rèn)參數(shù)的值(注意:所有位置參數(shù)必須出現(xiàn)在默認(rèn)參數(shù)前,包括函數(shù)定義和調(diào)用)。關(guān)鍵字參數(shù):函數(shù)調(diào)用時,可以通過“鍵-值”形式指定參數(shù),即傳參時把定義函數(shù)時的參數(shù)名和對應(yīng)的值一起傳入函數(shù)中,此時可不考慮傳入?yún)?shù)的順序。可變參數(shù):主要包括任意數(shù)量的可變位置參數(shù)和任意數(shù)量的關(guān)鍵字可變參數(shù),*args參數(shù)傳入時存儲在元組中,**kwargs參數(shù)傳入時存儲在字典內(nèi)。。[例3-5]沒有參數(shù)的函數(shù)。3.4.1函數(shù)參數(shù)類型注意:__name__可以獲取函數(shù)的名稱,__doc__可以獲取函數(shù)的注釋信息。[例3-6]用帶位置參數(shù)的函數(shù),判斷是否是素數(shù)。。3.4.2位置參數(shù)3.4.3默認(rèn)參數(shù)[例3-7]在定義函數(shù)時,設(shè)置參數(shù)的默認(rèn)值。[例3-8]計算橢球的表面積和體積,調(diào)用時修改了默認(rèn)參數(shù)的值。3.4.3默認(rèn)參數(shù)3.4.3默認(rèn)參數(shù)注意:默認(rèn)參數(shù)一般要放到參數(shù)列表的最后修改3.4.2參數(shù)設(shè)置默認(rèn)值重要說明:默認(rèn)值只計算一次。當(dāng)默認(rèn)值是可變對象(如列表、字典或大多數(shù)類的實例)時,這會有所不同。以下函數(shù)將在后續(xù)調(diào)用中累積傳遞給它的參數(shù)值,默認(rèn)值在定義范圍內(nèi)的函數(shù)定義點進(jìn)行計算,如下例:請分析方法一和方法二的不同之處。[例3-9]默認(rèn)值在定義范圍內(nèi)的函數(shù)定義點進(jìn)行計算實例。方法一方法二3.4.3默認(rèn)參數(shù)[例3-10]默認(rèn)值對后續(xù)調(diào)用的影響實例。如果不希望在后續(xù)調(diào)用之間共享

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論