版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
程序設(shè)計第1章認(rèn)識Python第1章認(rèn)識Python第2章Python語法基礎(chǔ)第3章流程控制語句第4章Python復(fù)合數(shù)據(jù)類型第5章python字符串與正則表達(dá)式第6章函數(shù)與函數(shù)式編程第7章Python面向?qū)ο缶幊痰?章文件操作第9章錯誤與異常第10章Python虛擬環(huán)境第11章科學(xué)計算庫NumPy第12章數(shù)據(jù)分析庫Pandas第13章可視化工具庫Matplotlib第14章高級科學(xué)計算庫SciPy第15章Python機(jī)器學(xué)習(xí)全套PPT課件第1章認(rèn)識Python二、Python環(huán)境安裝一、初識Python三、Python代碼的執(zhí)行四、Python集成開發(fā)環(huán)境五、Python2.x與Python3.x的區(qū)別六、本章小結(jié)本章目錄學(xué)習(xí)目標(biāo)本章學(xué)習(xí)目標(biāo)了解Python語言的特點(diǎn)理解Python解釋器和程序運(yùn)行過程掌握Python不同平臺安裝掌握Python代碼兩種基本運(yùn)行方式掌握Python集成開發(fā)環(huán)境的安裝和使用了解Python的版本差異第1章認(rèn)識Python思維導(dǎo)圖第1章認(rèn)識Python5《Python程序設(shè)計》1.1初識Python
Python是一種易于學(xué)習(xí)、功能強(qiáng)大的編程語言。它具備的高效的數(shù)據(jù)結(jié)構(gòu)和簡潔的面向?qū)ο缶幊谭椒?,使得其成為許多領(lǐng)域的腳本編寫和快速應(yīng)用程序開發(fā)的理想語言。強(qiáng)大且穩(wěn)定的標(biāo)準(zhǔn)庫及對第三方庫的良好兼容能力使得其得以更廣泛應(yīng)用。第1章認(rèn)識Python6《Python程序設(shè)計》(1)機(jī)器語言機(jī)器語言是一種指令集的體系,屬于低級語言,是計算機(jī)中央處理器可直接解讀的數(shù)據(jù)和指令。(2)匯編語言匯編語言是面向機(jī)器的程序設(shè)計語言。匯編語言亦稱為符號語言。使用匯編語言編寫的程序,機(jī)器不能直接識別,需要匯編程序?qū)R編語言翻譯成機(jī)器語言。(3)高級語言高級語言主要是相對于匯編語言而言。高級語言所編制的程序源碼也不能直接被計算機(jī)識別,需要進(jìn)行轉(zhuǎn)換,按轉(zhuǎn)換方式不同通常將它們分為兩類:編譯型和解釋型。1.1.1編程語言概述
第1章認(rèn)識Python7《Python程序設(shè)計》(3)高級語言編譯型:編譯是指在應(yīng)用程序執(zhí)行之前,需將程序源代碼“翻譯”成目標(biāo)程序(機(jī)器語言),目標(biāo)程序可以脫離其語言環(huán)境獨(dú)立執(zhí)行。如果應(yīng)用程序一旦需要修改,必須重新編譯生成新的目標(biāo)文件才能執(zhí)行。以C語言為例,編譯型語言從編輯到輸出結(jié)果的整個過程,如圖所示。1.1.1編程語言概述
第1章認(rèn)識Python8《Python程序設(shè)計》(3)高級語言解釋型:解釋型語言關(guān)鍵部分是解釋器和虛擬機(jī)。解釋器負(fù)責(zé)將源代碼翻譯為與平臺無關(guān)的字節(jié)碼文件,而虛擬機(jī)是解釋型語言的運(yùn)行引擎,負(fù)責(zé)實(shí)際代碼指令執(zhí)行,如圖所示1.1.1編程語言概述
第1章認(rèn)識Python9《Python程序設(shè)計》名稱特點(diǎn)CPython官方版本的解釋器。使用C語言開發(fā),是使用最廣的Python解釋器IPython基于CPython,但在交互方式上有所增強(qiáng),執(zhí)行Python代碼的功能和CPython完全一樣PyPy一個追求執(zhí)行速度的Python解釋器。采用JIT技術(shù),對Python代碼進(jìn)行動態(tài)編譯,提升Python代碼的執(zhí)行速度Jython運(yùn)行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java字節(jié)碼IronPython運(yùn)行在微軟.Net平臺上的Python解釋器,可以直接把Python代碼編譯成.Net的字節(jié)碼1.1.2Python常用解釋器Python代碼的成功運(yùn)行依賴于一個設(shè)計良好的解釋器。在具體實(shí)現(xiàn)上,Python語言的解釋器有多種不同版本,如表所示。第1章認(rèn)識Python10《Python程序設(shè)計》1.1.3Python語言特點(diǎn)Python本身是由諸多其它語言發(fā)展而來的,因此不僅具有其它語言許多共同的特性,而且也具備很多其它語言沒有的特點(diǎn)。Python除了其作為解釋型語言和面向?qū)ο缶幊陶Z言的固有優(yōu)勢特點(diǎn)外,還具有許多其它鮮明的特點(diǎn),例如互動模式、可嵌入性、動態(tài)語言等。第1章認(rèn)識Python11《Python程序設(shè)計》1.2Python環(huán)境安裝Python環(huán)境的安裝提供了多種方式,在不同的操作系統(tǒng)中的操作也不盡相同。接下來主要介紹Python環(huán)境在Windows、Linux、MAC系統(tǒng)平臺上的安裝過程及注意事項(xiàng)。第1章認(rèn)識Python12《Python程序設(shè)計》1.2.1Windows環(huán)境中Python的安裝1.Python安裝包的下載訪問Python官網(wǎng)(https://www.P/downloads/),如圖所示。該頁面默認(rèn)提供Python3.7.X版本下載,點(diǎn)擊“DownloadPython3.7.2”按鈕可以直接下載Python3.7.2的安裝文件。第1章認(rèn)識Python13《Python程序設(shè)計》當(dāng)然也可以通過訪問頁面下方的"Lookingforaspecificrelease"列表下載特定版本,例如Python2.7.X的Python安裝文件,如圖所示。1.2.1Windows環(huán)境中Python的安裝第1章認(rèn)識Python14《Python程序設(shè)計》選擇Windows平臺常用的Python安裝文件“Windowsx86-64executableinstaller”進(jìn)行下載,如圖所示。1.2.1Windows環(huán)境中Python的安裝第1章認(rèn)識Python15《Python程序設(shè)計》1.Python環(huán)境安裝與配置在Windows平臺上安裝Python,具體步驟如下:(1)雙擊已下載的安裝包,例如python-3.7.2-amd64.exe,進(jìn)入Python安裝向?qū)?。?)選中“AddPython3.7toPATH”方便后繼直接運(yùn)行python命令,然后選擇“InstallNow”按照系統(tǒng)默認(rèn)配置進(jìn)行安裝。默認(rèn)安裝路徑通常是“C:\Uers\<username>\AppData\Local\Programs\Python\Python37”。1.2.1Windows環(huán)境中Python的安裝第1章認(rèn)識Python16《Python程序設(shè)計》(2)為了環(huán)境配置方便,安裝時建議選擇“Customizeinstallation”進(jìn)行自定義安裝,如圖所示。選擇“AddPython3.7toPATH”選項(xiàng)選中后,即將Python添加到Windows系統(tǒng)的PATH環(huán)境變量中,方便可直接在Windows命令提示符下執(zhí)行Python等相關(guān)命令。1.2.1Windows環(huán)境中Python的安裝第1章認(rèn)識Python17《Python程序設(shè)計》(3)建議不改變默認(rèn)設(shè)置安裝所有可選特性庫,如圖所示,然后單擊“Next”,進(jìn)入Python安裝高級選項(xiàng)界面。1.2.1Windows環(huán)境中Python的安裝第1章認(rèn)識Python18《Python程序設(shè)計》(4)在Python安裝高級選項(xiàng)設(shè)置中,建議選中所有選項(xiàng),并更改安裝路徑建議設(shè)置為“D:\Python37”,如圖所示。單擊“Install”進(jìn)入Python加載安裝界面。1.2.1Windows環(huán)境中Python的安裝第1章認(rèn)識Python19《Python程序設(shè)計》(5)在安裝階段安裝器會將軟件包復(fù)制到指定文件夾,并設(shè)置相關(guān)配置,如圖所示。1.2.1Windows環(huán)境中Python的安裝第1章認(rèn)識Python20《Python程序設(shè)計》(6)安裝完成后出現(xiàn)“安裝成功”的提示,如圖所示。圖1-10安裝完成1.2.1Windows環(huán)境中Python的安裝第1章認(rèn)識Python21《Python程序設(shè)計》(7)安裝完成之后,在開始菜單中出現(xiàn)Python3.7圖標(biāo),如左圖所示。單擊該圖標(biāo)進(jìn)入Python交互式界面,如右圖所示Python環(huán)境安裝成功。1.2.1Windows環(huán)境中Python的安裝第1章認(rèn)識Python的安裝22《Python程序設(shè)計》1.2.2Linux環(huán)境中Python的安裝在大多數(shù)Linux系統(tǒng)中已經(jīng)預(yù)裝了Python環(huán)境,但如果對版本有特殊需求,可以自行下載不同版本的Python進(jìn)行安裝。下面介紹兩種基本安裝方式:源文件編譯安裝方式和包管理器安裝方式。第1章認(rèn)識Python23《Python程序設(shè)計》1.通過包管理器安裝Linux操作系統(tǒng)存在多種軟件包管理系統(tǒng)和安裝機(jī)制,可以通過Linux系統(tǒng)自帶的包管理器安裝軟件。以在Ubuntu系統(tǒng)中安裝Python3.5版本為例,如圖所示,只需要執(zhí)行如下命令:$sudoapt-getinstallpython3.51.2.2Linux環(huán)境中Python的安裝第1章認(rèn)識Python24《Python程序設(shè)計》安裝完成后,可以在命令行終端運(yùn)行Python3.5的交互式環(huán)境。在Linux終端輸入命令python3.5后回車執(zhí)行,如圖所示。1.2.2Linux環(huán)境中Python的安裝第1章認(rèn)識Python25《Python程序設(shè)計》2.通過源碼進(jìn)行編譯安裝使用包管理器安裝Python相當(dāng)方便,但是在某些情況下不能使用包管理器安裝。例如當(dāng)前用戶沒有root權(quán)限、需要特殊Python版本等,此時可以通過源碼編譯安裝方式進(jìn)行安裝。通過源碼安裝Python雖然過程稍有點(diǎn)復(fù)雜,但是更加靈活,其安裝步驟如下:1.2.2Linux環(huán)境中Python的安裝第1章認(rèn)識Python26《Python程序設(shè)計》2.通過源碼進(jìn)行編譯安裝(1)訪問Python官網(wǎng)(/downloads/source/),選擇下載Python源碼文件。以Python3.7.2版本為例,選擇“Gzippedsourcetarball”進(jìn)行下載,如圖所示,獲得Python-3.7.2.tgz文件。1.2.2Linux環(huán)境中Python的安裝第1章認(rèn)識Python27《Python程序設(shè)計》(2)將Python-3.7.2.tgz軟件壓縮包在Linux命令行進(jìn)行解壓,執(zhí)行解壓指令為:$tar-zvxfPython-3.7.2.tgz注意,Python-3.7.1.tgz應(yīng)替換為實(shí)際下載的文件名。解壓生成新目錄“Python-3.7.2”如圖所示。1.2.2Linux環(huán)境中Python的安裝第1章認(rèn)識Python28《Python程序設(shè)計》通過cd命令切換到Python源碼目錄進(jìn)行編譯安裝。在Linux平臺通過源碼安裝軟件通常是3個基本步驟:配置(configure)、編譯(make)、安裝(makeinstall)。進(jìn)入Python源碼目錄后,順序執(zhí)行如下命令即可完成安裝。$./configure$make$makeinstall1.2.2Linux環(huán)境中Python的安裝第1章認(rèn)識Python29《Python程序設(shè)計》通過源碼安裝Python可以非常方便指定最終執(zhí)行文件安裝路徑。如圖所示,通過配置指令configure的--prefix參數(shù)指定安裝路徑。例如:$./configure--prefix/home/leo/python371.2.2Linux環(huán)境中Python的安裝第1章認(rèn)識Python30《Python程序設(shè)計》編譯Python源碼安裝Python到指定目錄Python安裝成功執(zhí)行Python解釋器1.2.2Linux環(huán)境中Python的安裝第1章認(rèn)識Python31《Python程序設(shè)計》1.2.4MACOS平臺中Python環(huán)境的安裝同Linux系統(tǒng)一樣,MAC系統(tǒng)一般也預(yù)裝了Python環(huán)境,當(dāng)然也可以使用和Linux相似的方式源碼編譯安裝特定版本的Python,這里不再贅述。下面介紹使用圖形界面的方法安裝Python環(huán)境。第1章認(rèn)識Python32《Python程序設(shè)計》1.Mac平臺的Python下載訪問Python官網(wǎng)(/downloads/),選擇下載“PythonReleasesforMacOSX”。以Python3.7.2版本為例,如圖所示選擇“macOS64-bitinstaller”進(jìn)行下載,獲得python-3.7.2-macosx10.9.pkg文件。1.2.4MACOS平臺中Python環(huán)境的安裝第1章認(rèn)識Python33《Python程序設(shè)計》2.Mac平臺的Python安裝(1)雙擊運(yùn)行下載獲得的軟件包python-3.7.2-macosx10.9.pkg,進(jìn)入安裝頁面,如圖所示。1.2.4MACOS平臺中Python環(huán)境的安裝第1章認(rèn)識Python34《Python程序設(shè)計》(2)閱讀“請先閱讀”和“許可”相關(guān)內(nèi)容,并同意相關(guān)要求,如圖所示,單擊“繼續(xù)”進(jìn)入“目的宗卷”界面1.2.4MACOS平臺中Python環(huán)境的安裝第1章認(rèn)識Python35《Python程序設(shè)計》(4)選擇目卷宗,可以安裝在不同的磁盤上,如圖所示,單擊“繼續(xù)”進(jìn)入“安裝類型”界面。1.2.4MACOS平臺中Python環(huán)境的安裝第1章認(rèn)識Python36《Python程序設(shè)計》(5)單擊“更改安裝位置”按鈕選擇安裝位置,如圖所示,單擊“安裝”進(jìn)入安裝界面。1.2.4MACOS平臺中Python環(huán)境的安裝第1章認(rèn)識Python37《Python程序設(shè)計》(6)安裝完成后出現(xiàn)“安裝成功”的提示,如圖所示。1.2.4MACOS平臺中Python環(huán)境的安裝第1章認(rèn)識Python38《Python程序設(shè)計》(7)安裝成功后會自動打開Python應(yīng)用程序文件夾,如圖所示。1.2.4MACOS平臺中Python環(huán)境的安裝第1章認(rèn)識Python39《Python程序設(shè)計》(8)雙擊"IDLE"圖標(biāo),打開PythonShell,界面顯示Python解釋器的相關(guān)信息,如圖所示,Python運(yùn)行環(huán)境在MAC系統(tǒng)上安裝完成。1.2.4MACOS平臺中Python環(huán)境的安裝第1章認(rèn)識Python40《Python程序設(shè)計》1.3Python代碼的執(zhí)行Python代碼的編輯和運(yùn)行方式主要分為兩種:交互模式和腳本模式。在交互模式下,用戶輸入Python代碼并按回車鍵后Python解釋器將立即解釋執(zhí)行該行代碼且返回結(jié)果;腳本式模式是指將已經(jīng)編寫好的Python代碼文件作為Python解釋器命令的參數(shù),由解釋器解釋批量執(zhí)行并返回結(jié)果。下面通過具體實(shí)例來介紹這兩種方式。第1章認(rèn)識Python41《Python程序設(shè)計》1.3.1交互模式當(dāng)成功安裝Python之后,有兩種方式可以進(jìn)入Python交互式運(yùn)行模式。一種是通過Python自帶的一個非常簡潔的集成開發(fā)環(huán)境IDLE,如左下圖所示。另外一種是在系統(tǒng)命令行終端直接運(yùn)行python命令進(jìn)入交互模式,如右下圖所示。當(dāng)成功進(jìn)入Python交互模式,其控制臺最后一行會顯示Python命令提示符“>>>”,此時可以鍵入Python語句進(jìn)行交互式執(zhí)行。第1章認(rèn)識Python42《Python程序設(shè)計》在交互式環(huán)境中,輸入的代碼回車后會立即執(zhí)行并打印執(zhí)行結(jié)果,當(dāng)輸入不合法的Python語句時控制臺也將立即顯示相關(guān)錯誤信息,如圖所示。1.3.1交互模式第1章認(rèn)識Python43《Python程序設(shè)計》在IDLE環(huán)境下使用Python交互模式時,可以通過“Alt+p”和“Alt+n”組合鍵查詢之前輸入的歷史命令系統(tǒng)命令行終端直接運(yùn)行Python命令進(jìn)入的交互模式,可使用向上和向下的箭頭實(shí)現(xiàn)查詢之前輸入的命令,實(shí)現(xiàn)Python程序語句的重復(fù)使用和執(zhí)行。在IDLE環(huán)境下,其它較常用的快捷鍵如下表所示。1.3.1交互模式第1章認(rèn)識Python44《Python程序設(shè)計》名稱功能說明Alt+3多行注釋Alt+4取消多行注釋Tab命令自動補(bǔ)全Alt+p瀏覽上一條命令A(yù)lt+n瀏覽下一條命令Ctrl+]多行的代碼的縮進(jìn)Ctrl+[取消多行的代碼的縮進(jìn)F5
進(jìn)入PythonShell調(diào)試界面表IDLE常用快捷鍵第1章認(rèn)識Python45《Python程序設(shè)計》Python腳本通常是擴(kuò)展名為.py的文本文件,腳本文件可以使用常用的任何文本編譯器進(jìn)行編輯修改。例如,將Python腳本代碼實(shí)例1-1保存到“D:\Python_src\Exam01.py”文件中。代碼實(shí)例1-11.3.2腳本式模式print('HelloWorld!')#打印字符串print('2+3=',2+3)#進(jìn)行簡單計算print('2**3=',2**3)#冪計算print('a=',a)#無定義,結(jié)果會報錯第1章認(rèn)識Python46《Python程序設(shè)計》進(jìn)入Windows命令行終端,執(zhí)行“pythonD:\Python_src\Exam01.py”命令,其結(jié)果如圖所示。Python腳本執(zhí)行過程中如果遇到錯誤將會終止腳本執(zhí)行并在系統(tǒng)終端控制臺打印錯誤信息。1.3.2腳本式模式第1章認(rèn)識Python47《Python程序設(shè)計》在腳本模式中,Python命令后面可以附加一些參數(shù)來擴(kuò)展其功能。例如,可以使用Python-V查看Python版本信息,Python命令常用的參數(shù)如表所示。選項(xiàng)描述-d在解析時顯示調(diào)試信息-O生成優(yōu)化代碼(.pyo文件)-S啟動時不引入查找Python路徑的位置-V輸出Python版本信息-x忽略腳本第一行,更好兼容非Unix平臺的腳本-ccmd執(zhí)行Python腳本,并將運(yùn)行結(jié)果作為cmd字符串-h打印Python命令幫助信息1.3.2腳本式模式第1章認(rèn)識Python48《Python程序設(shè)計》1.4Python集成開發(fā)環(huán)境集成開發(fā)環(huán)境(IDE,IntegratedDevelopmentEnvironment)是專用于軟件開發(fā)的專門軟件程序。IDE集成了為軟件開發(fā)而設(shè)計的工具,通常包括一個專門為了處理代碼的編輯器,以及構(gòu)建、執(zhí)行、調(diào)試工具和某種形式的源代碼控制。目前支持Python語言開發(fā)的IDE非常多,如PyCharm、VSCode、Eclipse+PyDev、Spyder、Thonny和Komodo等。不同IDE的使用方法大同小異,本書以PyCharm為例簡要介紹。第1章認(rèn)識Python49《Python程序設(shè)計》1.4.1PyCharm的安裝JetBrains公司官網(wǎng)分別提供了支持Windows、Linux和MACOS平臺的PyCharm版本,開發(fā)者可以根據(jù)需要選擇下載。各個操作系統(tǒng)版本的PyCharm安裝過程大同小異,本書以Windows平臺下的安裝為例介紹。第1章認(rèn)識Python50《Python程序設(shè)計》1.PyCharm下載訪問PyCharm網(wǎng)站并下載軟件包,下載界面如圖所示。1.4.1PyCharm的安裝第1章認(rèn)識Python51《Python程序設(shè)計》2.PyCharm安裝(1)雙擊下載好的文件pycharm-professional-2018.3.4.exe,進(jìn)入安裝向?qū)ы撁?,如圖所示,單擊“Next>”按鈕進(jìn)入下一步。1.4.1PyCharm的安裝第1章認(rèn)識Python52《Python程序設(shè)計》(2)進(jìn)入安裝路徑選擇界面,如圖所示,單擊“下一步”進(jìn)入“選擇目標(biāo)位置”界面。1.4.1PyCharm的安裝第1章認(rèn)識Python53《Python程序設(shè)計》(3)進(jìn)入安裝參數(shù)設(shè)置界面。開發(fā)者可以根據(jù)需要勾選所需的選項(xiàng),如圖所示,單擊“next>”按鈕繼續(xù)安裝。1.4.1PyCharm的安裝第1章認(rèn)識Python54《Python程序設(shè)計》(4)可以設(shè)置開始菜單文件夾的名字,一般使用默認(rèn)設(shè)置即可,如圖所示。單擊“Install”按鈕,進(jìn)入正式安裝過程。1.4.1PyCharm的安裝第1章認(rèn)識Python55《Python程序設(shè)計》(5)開始安裝后,會出現(xiàn)安裝進(jìn)度提示,如左圖所示。安裝完成后,如右圖所示。1.4.1PyCharm的安裝第1章認(rèn)識Python56《Python程序設(shè)計》1.4.2PyCharm的使用首次打開PyCharmIDE,會提示選擇界面的UI主題,如圖所示。第1章認(rèn)識Python57《Python程序設(shè)計》對于初學(xué)者,可以選擇“SkipRemainingandSetDefaults”按鈕,使用系統(tǒng)的默認(rèn)UI風(fēng)格,如圖所示。1.4.2PyCharm的使用第1章認(rèn)識Python58《Python程序設(shè)計》在項(xiàng)目引導(dǎo)界面中,可以選擇創(chuàng)建新項(xiàng)目或打開已有項(xiàng)目。因?yàn)槭鞘状芜\(yùn)行PyCharm,所以需要新建一個項(xiàng)目。選擇“CreateNewProject”按鈕,進(jìn)入創(chuàng)建項(xiàng)目界面,如圖所示。1.4.2PyCharm的使用第1章認(rèn)識Python59《Python程序設(shè)計》在此創(chuàng)建一個“PurePython”的項(xiàng)目,項(xiàng)目名為“MyProject”,然后點(diǎn)擊“Create”按鈕后,進(jìn)入PyCharm的主界面,如圖所示。1.4.2PyCharm的使用第1章認(rèn)識Python60《Python程序設(shè)計》在Python主界面中,可以在所創(chuàng)建項(xiàng)目名稱上點(diǎn)擊右鍵,選擇創(chuàng)建Python文件,如圖所示。1.4.2PyCharm的使用第1章認(rèn)識Python61《Python程序設(shè)計》在此,創(chuàng)建一個名為MyTest的Python文件,并完成輸出“HelloWorld”字符串的功能,如圖所示。1.4.2PyCharm的使用第1章認(rèn)識Python62《Python程序設(shè)計》PyCharm按照默認(rèn)設(shè)置安裝完成后,實(shí)際已經(jīng)集成了很多常用插件,對于初學(xué)者來說已經(jīng)足夠。如果要開發(fā)較為復(fù)雜的項(xiàng)目,需要第三方插件,也可以在PyCharm中進(jìn)行添加。下面以Python中常用的繪圖庫matplotlib插件為例介紹PyCharm中安裝插件的流程,其它插件的安裝流程于此類同。1.4.3PyCharm的插件第1章認(rèn)識Python63《Python程序設(shè)計》(1)單擊菜單項(xiàng)【File】-->【Settings】,進(jìn)入添加插件界面,如圖所示。單擊“+”后,進(jìn)入搜索插件界面。1.4.3PyCharm的插件第1章認(rèn)識Python64《Python程序設(shè)計》(2)在搜索欄輸入要搜索的插件名稱“matplotlib”,找到相應(yīng)的插件后,單擊“InstallPackage”按鈕安裝插件,如圖所示。1.4.3PyCharm的插件第1章認(rèn)識Python65《Python程序設(shè)計》(3)安裝過程通常是在線安裝,所以在安裝時要保證網(wǎng)絡(luò)暢通。根據(jù)網(wǎng)絡(luò)連接速度的快慢及插件包的大小,安裝時長不定。安裝成功后,出現(xiàn)“Package'matplotlib'installeduccefully”提示,如圖所示。1.4.3PyCharm的插件第1章認(rèn)識Python66《Python程序設(shè)計》為確保插件安裝成功,可以試用matplotlib插件繪制一個折線圖,如圖所示。1.4.3PyCharm的插件第1章認(rèn)識Python67《Python程序設(shè)計》Python主要有Python2.x和Python3.x兩個不同系列的版本,它們互不兼容。Python3.x對Python2.x的語法進(jìn)行了適當(dāng)?shù)膹U棄、修改,并新增了一些特性,所有在Python3.x中增加的新特性在Python2.x中均不支持。Python3.x引入了一些與Python2.x不兼容的關(guān)鍵字和特性,在Python2.x中,可以通過內(nèi)置的__future__模塊導(dǎo)入這些新內(nèi)容。例如,如果希望在Python2.x中擁有Python3.x的整數(shù)除法行為,可以通過下面的語句導(dǎo)入相應(yīng)的模塊。
from__future__importdivision
1.5Python2.x與Python3.x的區(qū)別第1章認(rèn)識Python68《Python程序設(shè)計》兩個Python版本之間的部分區(qū)別如表所示1.5Python2.x與Python3.x的區(qū)別
Python2.xPython3.x字符編碼默認(rèn)編碼方式是ASCII碼,所以默認(rèn)編碼方式下不支持中文,解決方式:在文件首行加上#-*-encoding:utf-8-*-
默認(rèn)編碼方式是UTF-8基礎(chǔ)數(shù)據(jù)類型對于長整型,type()得到的數(shù)據(jù)類型是long對于長整型,type()得到的數(shù)據(jù)類型是int整數(shù)除法除法的取值結(jié)果是向下取整數(shù)除法/的結(jié)果包含小數(shù),實(shí)現(xiàn)真除,//實(shí)現(xiàn)整除,結(jié)果是向下取整printprint可以加括號也可以不加,如
print'abc'
或
print('abc')print只有一種用法,即加括號,print('abc')range有range()和xrange(),兩個函數(shù)用法基本相同,但原理不同,range()是直接生成一個列表,而xrange()則是一個生成器,類似于迭代器。range()即為python2中的xrange()input分為raw_input()和input(),區(qū)別在于,raw_input()讀取的輸入流默認(rèn)轉(zhuǎn)換為字符串,而input()讀取的輸入流要按照基本格式輸入,如要輸入字符串需要加引號輸入,數(shù)字則不需要。只有input(),而它相當(dāng)于python2.x中的raw_input(),默認(rèn)得到的輸入都是字符串第1章認(rèn)識Python本
章
小
結(jié)
本章首先介紹了Python語言的運(yùn)行機(jī)制與特點(diǎn),并詳細(xì)講述了Python在主流系統(tǒng)平臺的安裝與使用其次,介紹了Python代碼的編輯與運(yùn)行以及Python的集成開發(fā)環(huán)境最后對Python2.x與Python3.x兩個系列版本的區(qū)別作出了簡單對比程序設(shè)計第2章Python語法基礎(chǔ)一、數(shù)據(jù)類型二、標(biāo)識符三、變量作用域四、語法規(guī)則五、I/O操作六、Python模塊第2章Python語法基礎(chǔ)本章目錄七、Python對象第2章Python語法基礎(chǔ)本章學(xué)習(xí)目標(biāo)掌握Python數(shù)據(jù)類型含義及用法掌握Python標(biāo)識符的含義及用法掌握Python變量的定義及使用熟悉Python編程的語法規(guī)則掌握I/O操作相關(guān)函數(shù)的使用掌握I/O操作相關(guān)函數(shù)的使用了解Python對象的含義及用法思維導(dǎo)圖第2章Python語法基礎(chǔ)74《Python程序設(shè)計》2.1數(shù)據(jù)類型2.1.1整數(shù)型Python的六大數(shù)據(jù)類型如下所示:(1)數(shù)字(Numbers):int(整型),long(長整型),complex(復(fù)數(shù)),float(浮點(diǎn)型),bool(布爾型);(2)字符串(String):"Python",'Python';(3)列表(List):[1,2,3,4],[5,6,7,[8,9],10];(4)字典(Dictionary):{1:"study",2:"Python"};(5)元組(Tuple):(1,"shuai",2);(6)集合(Set):{'P','y','t','h','o','n'}第2章Python語法基礎(chǔ)75《Python程序設(shè)計》Python具有自動內(nèi)存管理功能,對于沒有任何變量指向的值,Python自動將其刪除。數(shù)字型具體又分為整數(shù)型、浮點(diǎn)型、復(fù)數(shù)和布爾型。第2章Python語法基礎(chǔ)2.1.1整數(shù)型76《Python程序設(shè)計》在Python中,浮點(diǎn)數(shù)可以用小數(shù)點(diǎn)的形式表示,也可以用科學(xué)計數(shù)法形式表示0.0,-1.34,-99.;(小數(shù)點(diǎn)形式)23e4,78e-4,3.5E7;(科學(xué)計數(shù)法)2.1.2浮點(diǎn)數(shù)第2章Python語法基礎(chǔ)77《Python程序設(shè)計》復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,Python語言中通常使用a+bj或者complex(a,b)表示,其中a表示復(fù)數(shù)的實(shí)部,b表示復(fù)數(shù)的虛部,并且復(fù)數(shù)的實(shí)部a和虛部b都是浮點(diǎn)型。復(fù)數(shù)是Python中的一個基本類型,由于Python語言所有變量都可以看做類,因此其有固定的成員變量和方法。2.1.3復(fù)數(shù)第2章Python語法基礎(chǔ)78《Python程序設(shè)計》布爾類型是只有True和False兩種值(注意單詞首字母要大寫)的數(shù)據(jù)類型。常用的布爾運(yùn)算包括and、or、not三種。2.1.4布爾運(yùn)算結(jié)果xandy只有x和y同時為True時,結(jié)果為Truexory只要x和y其中一個為True時,結(jié)果為Truenotx取反,即x為True時,結(jié)果為False第2章Python語法基礎(chǔ)79《Python程序設(shè)計》常見的數(shù)值運(yùn)算,如加減乘除等,Python均能支持很好,并且在交互模式下可以直接輸出數(shù)值運(yùn)算的結(jié)果。Python中有兩種除法,即/和//,這兩種除法在Python2.x和Python3.x中用法不盡相同。由于算術(shù)運(yùn)算符是雙目運(yùn)算符,即有兩個操作數(shù)參加運(yùn)算,當(dāng)參加運(yùn)算的兩個操作數(shù)的類型不一致時,首先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算,否則會提示錯誤。轉(zhuǎn)換的基本規(guī)則是:如果參加算術(shù)運(yùn)算的兩個操作數(shù)中有一個是復(fù)數(shù),則把另一個也轉(zhuǎn)換為復(fù)數(shù);如果兩個操作數(shù)中有一個是浮點(diǎn)數(shù),則把另一個也換成浮點(diǎn)數(shù);如果兩個操作數(shù)中有一個是長整數(shù),則把另一個也轉(zhuǎn)換成長整數(shù)。轉(zhuǎn)換時不同類型之間的轉(zhuǎn)換必須遵守一定轉(zhuǎn)換方向,如不可以把一個浮點(diǎn)數(shù)轉(zhuǎn)換為一個整數(shù),也不能把一個復(fù)數(shù)轉(zhuǎn)換為其它數(shù)值類型。2.1.5數(shù)值運(yùn)算第2章Python語法基礎(chǔ)80《Python程序設(shè)計》Python內(nèi)置了很多實(shí)用的數(shù)值函數(shù),不需要引入第三方包即可進(jìn)行調(diào)用使用。2.1.6數(shù)值計算函數(shù)庫第2章Python語法基礎(chǔ)第2章Python語法基礎(chǔ)81《Python程序設(shè)計》當(dāng)不清楚變量的數(shù)據(jù)類型時,可以通過Python內(nèi)置的type()函數(shù)來查詢其數(shù)據(jù)類型。2.1.7type的應(yīng)用第2章Python語法基礎(chǔ)82《Python程序設(shè)計》2.2標(biāo)識符2.2.1標(biāo)識符含義在Python中,標(biāo)識符是程序員自定義的符號和名稱。以變量為例,一切變量在使用前必須定義,變量名是對變量引用起的一個名字,可以通過變量名引用定義的變量。此外,變量使用要注意以下兩點(diǎn):(1)Python可以同時為多個變量賦值,如a,b=1,2;
(2)一個變量可以通過賦值指向不同類型的對象。第2章Python語法基礎(chǔ)83《Python程序設(shè)計》標(biāo)識符在命名時應(yīng)遵守一定的規(guī)則。為了使標(biāo)識符名稱更清晰易讀,一般使用駝峰命名法。駝峰命名法是由駝峰的直觀形狀衍生而來,主要有兩種命名方法:(1)小駝峰式命名法(lowercamelcase):第一個單詞以小寫字母開始;第二個單詞的首字母大寫,例如:myName、aDog。(2)大駝峰式命名法(uppercamelcase):每一個單字的首字母都采用大寫字母,例如:FirstName、LastName。2.2.2標(biāo)識符命名第2章Python語法基礎(chǔ)84《Python程序設(shè)計》Python中一些具有特殊功能的標(biāo)識符,就是Python關(guān)鍵字。這些關(guān)鍵字是Python內(nèi)部已經(jīng)使用的,因此不允許開發(fā)者再定義和關(guān)鍵字相同名字的標(biāo)識符。運(yùn)行結(jié)果中的出現(xiàn)的即為當(dāng)前環(huán)境下的關(guān)鍵字。2.2.3Python關(guān)鍵字第2章Python語法基礎(chǔ)85《Python程序設(shè)計》BIF(BulitInFunction)意為內(nèi)置函數(shù),是Python自身提供的函數(shù)功能。對于這些函數(shù),開發(fā)人員可以直接使用。Python中提供了大量的內(nèi)置功能函數(shù),在Python運(yùn)行環(huán)境中可以使用dir(__builtins__)命令查看Python的內(nèi)置函數(shù)。2.2.4Python的BIF第2章Python語法基礎(chǔ)86《Python程序設(shè)計》
Python標(biāo)識符中有一些具有特殊的含義。(1)使用下劃線作為變量前綴和后綴來指定Python特殊變量。(2)使用__name__標(biāo)識符判斷模塊是被導(dǎo)入還是被直接執(zhí)行。2.2.5專有標(biāo)識符第2章Python語法基礎(chǔ)87《Python程序設(shè)計》2.3變量作用域2.3.1Python作用域類型Python的變量作用域分為4種。
(1)全局作用域(global)
(2)局部作用域(local)
(3)閉包函數(shù)(enclosing)嵌套作用域
(4)內(nèi)置作用域(Built-in)第2章Python語法基礎(chǔ)88《Python程序設(shè)計》Python中,主要賦值運(yùn)算符是等號(=)。變量賦值不是直接將一個值賦給一個變量,變量是通過引用傳遞的。不管變量是新創(chuàng)建的還是已經(jīng)存在的,都是將該變量的引用賦值給變量。Python中的變量賦值不需要類型聲明。每個變量在內(nèi)存中創(chuàng)建,都包括變量的標(biāo)識,名稱和數(shù)據(jù)這些信息。每個變量在使用前都必須賦值,變量賦值以后該變量才會被創(chuàng)建。等號(=)運(yùn)算符左邊是變量名,等號(=)運(yùn)算符右邊是存儲在變量中的值。2.3.3賦值操作符第2章Python語法基礎(chǔ)89《Python程序設(shè)計》Python語言也提供了增量賦值運(yùn)算符,最有意義的變化是第一個對象僅被處理一次。2.3.4增量賦值運(yùn)算符描述實(shí)例+=加法賦值運(yùn)算符c+=a等效于c=c+a-=減法賦值運(yùn)算符c-=a等效于c=c-a*=乘法賦值運(yùn)算符c*=a等效于c=c*a/=除法賦值運(yùn)算符c/=a等效于c=c/a%=取模賦值運(yùn)算符c%=a等效于c=c%a**=冪賦值運(yùn)算符c**=a等效于c=c**a//=取整除賦值運(yùn)算符c//=a等效于c=c//a第2章Python語法基礎(chǔ)90《Python程序設(shè)計》Python語言允許同時為多個變量賦值。例如:a=b=c=100。該實(shí)例中,創(chuàng)建一個整型對象,值為100,三個變量被分配到相同的內(nèi)存空間上。也可以為多個對象指定多種類型的變量。例如:a,b,c=1,2,"Lily"。2.3.5多元賦值該實(shí)例中,兩個整型對象1和2的分別分配給變量a和b,字符串對象"Lily"分配給變量c。賦值時將等號兩邊的對象都看成元組,使用多元賦值的方法可以不使用中間變量直接交換變量的值。第2章Python語法基礎(chǔ)91《Python程序設(shè)計》2.4語法規(guī)則2.4.1注釋Python中的注釋有單行注釋和多行注釋單行注釋以#開頭,多行注釋可以換行后再以#開頭.Python解釋器會自動忽略以#開頭的行,或者使用三個單引號'''內(nèi)容'''
,也可以使用三個雙引號"""內(nèi)容"""。第2章Python語法基礎(chǔ)92《Python程序設(shè)計》縮進(jìn)相同的一組語句構(gòu)成一個代碼塊,稱之代碼組。首行以關(guān)鍵字開始,以冒號(:)結(jié)束,該行之后的一行或多行代碼構(gòu)成代碼組。例如if、while、def和class這樣的復(fù)合語句。一般將首行及后面的代碼組稱為一個子句(clause)。2.4.2代碼組與代碼塊第2章Python語法基礎(chǔ)93《Python程序設(shè)計》Python通常是一行寫完一條語句。當(dāng)語句較長時,可以使用反斜杠(\)來實(shí)現(xiàn)多行語句。2.4.3同行書寫多條語句第2章Python語法基礎(chǔ)94《Python程序設(shè)計》函數(shù)之間或類的方法之間用空行分隔,表示一段新的代碼的開始。類和函數(shù)入口之間也用一行空行分隔,以突出函數(shù)入口的開始。空行與代碼縮進(jìn)不同,空行并不是Python語法的一部分。書寫時不插入空行,Python解釋器運(yùn)行也不會出錯??招械淖饔迷谟诜指魞啥尾煌δ芑蚝x的代碼,便于日后代碼的維護(hù)或重構(gòu)??招幸彩浅绦虼a的一部分。Python最具特色的就是使用縮進(jìn)來表示代碼塊,不需要使用大括號{}??s進(jìn)的空格數(shù)是可變的,但是同一個代碼塊的語句必須包含相同的縮進(jìn)空格數(shù)。2.4.4空行與縮進(jìn)第2章Python語法基礎(chǔ)95《Python程序設(shè)計》2.5I/O操作2.5.1輸出操作Python2.x和Python3.x中的輸出方法也不一樣,在Python2.x中,使用print語句進(jìn)行輸出,在Python3.x中,使用print()函數(shù)進(jìn)行輸出。在Python2.x中,通過','在末行抑制輸出換行。
在Python3則在print()函數(shù)中使用"end='
'"
附加空格,而不是換行。print()可以跟上多個字符串,用逗號“,”隔開,就可以連成一串輸出。print()會依次打印每個字符串,遇到逗號“,”會輸出一個空格。第2章Python語法基礎(chǔ)96《Python程序設(shè)計》Python2.x中,raw_input(),將所有輸入作為字符串看待,返回字符串類型。input()在對待純數(shù)字輸入時具有自己的特性,它返回所輸入的數(shù)字的類型(int,float)。input()相等于
eval(raw_input(prompt))
,用來獲取控制臺的輸入,其中eval()用于將輸入數(shù)據(jù)還原成原有數(shù)據(jù)類型。在Python3.x中,不存在raw_input()函數(shù),只提供了input()函數(shù)用來接收用戶的鍵盤輸入。不論用戶輸入數(shù)據(jù)時使用什么界定符,input()函數(shù)的返回結(jié)果都是字符串,需要將其轉(zhuǎn)換為相應(yīng)的類型再處理。也可使用eval(input(prompt)),可以把輸入數(shù)據(jù)再還原成原有的數(shù)據(jù)類型。2.5.2輸入操作第2章Python語法基礎(chǔ)97《Python程序設(shè)計》2.6Python模塊2.6.1模塊的分類在Python中,模塊分類分為三種:
(1)內(nèi)置標(biāo)準(zhǔn)模塊(又稱標(biāo)準(zhǔn)庫),執(zhí)行help('modules')查看所有python自帶模塊列表。(2)第三方開源模塊,可通過“pipinstall模塊名”聯(lián)網(wǎng)安裝。(3)自定義模塊,即創(chuàng)建了一個.py文件,就可以稱之為模塊,可以在另一個程序里導(dǎo)入。第2章Python語法基礎(chǔ)98《Python程序設(shè)計》在Python的默認(rèn)安裝中僅包含部分基本和核心模塊,也可以使用pip指令來添加第三方庫。在Python2.7.9和Python3.4.0之前的版本,需要先安裝pip命令才能使用,而在其以及之后的版本的安裝包中已集成該命令,不再需要單獨(dú)安裝。pip是官方推薦的安裝和管理Python包的工具,用其來下載和管理Python非常方便。pip最大的優(yōu)勢是它不僅能將需要的包下載下來,而且會把相關(guān)依賴的包也下載下來。使用pip命令可完成擴(kuò)展庫的安裝、升級、卸載等操作。2.6.2使用pip管理Python擴(kuò)展庫第2章Python語法基礎(chǔ)99《Python程序設(shè)計》在Python啟動時,僅自動加載很少一部分模塊,在需要時可顯式的加載需要的模塊。使用sys.modules.items()可以查看所有預(yù)加載的相關(guān)信息。import模塊名[as別名]使用import指令可對模塊進(jìn)行加載,加載后,使用“模塊名.對象名”的方式進(jìn)行訪問。如果設(shè)置模塊別名,可使用“別名.對象名”的方式進(jìn)行訪問from模塊名import對象名[as別名]2.6.3模塊的導(dǎo)入和使用第2章Python語法基礎(chǔ)100《Python程序設(shè)計》在需要導(dǎo)入的模塊類型較多時,一般遵守如下導(dǎo)入順序:(1)導(dǎo)入Python標(biāo)準(zhǔn)庫模塊,如sys、os、math等;(2)導(dǎo)入第三方庫,如numpy、Pandas、Matplotlib等;(3)導(dǎo)入自己開發(fā)的模塊,即編輯好.py文件。2.6.4模塊的導(dǎo)入順序第2章Python語法基礎(chǔ)101《Python程序設(shè)計》2.7Python對象Python從設(shè)計之初就是一門面向?qū)ο蟮恼Z言,對象在Python程序設(shè)計中無處不在,比如變量、以及后面將要介紹的函數(shù)、容器、類等皆是對象。在Python中有一個以關(guān)鍵字class定義的類型——類,通過實(shí)例化類,就能得到類的一個對象。除了自定義的類,在Python中有許多可以直接使用的對象類型,稱為Python內(nèi)置對象,例如列表(list),集合(set),元組(tuple)等。本章小結(jié)本
章
小
結(jié)
介紹了Python的數(shù)據(jù)類型、標(biāo)識符和變量作用域的含義及其使用方法介紹了Python的語法規(guī)則、I/O操作和模塊的分類及其使用方法最后,簡單介紹了Python對象概念程序設(shè)計第3章流程控制語句一、條件語句二、循環(huán)語句三、迭代器四、生成器五、與條件循環(huán)相關(guān)的內(nèi)建函數(shù)本章目錄本章學(xué)習(xí)目標(biāo)了解條件表達(dá)式的書寫方法掌握選擇結(jié)構(gòu)的使用方法掌握循環(huán)語句的使用方法掌握循環(huán)控制語句的使用方法理解可迭代對象的含義掌握迭代器的使用方法掌握生成器的使用方法掌握條件語句相關(guān)內(nèi)置函數(shù)的用法思維導(dǎo)圖107《Python程序設(shè)計》條件語句是用來判斷給定的條件是否滿足,并根據(jù)判斷的結(jié)果(TrueorFalse)作出決策,控制代碼塊的執(zhí)行。3.1條件語句108《Python程序設(shè)計》典型的條件表達(dá)式一般由運(yùn)算符、操作數(shù)組成,其中,操作數(shù)指運(yùn)算符處理的數(shù)據(jù),運(yùn)算符指對操作數(shù)進(jìn)行運(yùn)算處理的符號。3.1.1條件表達(dá)式算術(shù)運(yùn)算符:+、-、*、/、//、%、**、~
關(guān)系運(yùn)算符:>、<、==、!=、<>、<=、>=
測試運(yùn)算符:in、notin、is、notis
邏輯運(yùn)算符:and、or、not
109《Python程序設(shè)計》表3-1Python比較運(yùn)算符運(yùn)算符示例功能說明a==b等于,比較對象是否相等;a等于b返回Truea!=b不等于,比較兩個對象是否不相等;a不等于b返回Truea<>b不等于,比較兩個對象是否不相等;a不等于b返回True,類似!=a>b大于,返回a是否大于b;a大于b返回Truea<b小于,返回a是否小于b;a小于b返回Truea>=b大于等于,返回a是否大于等于b;a大于等于b返回Truea<=b小于等于,返回a是否小于等于b;a小于等于b返回True110《Python程序設(shè)計》表3-2Python測試運(yùn)算符運(yùn)算符示例功能說明ainba是否在b序列中,如果a在b序列中返回True,否則返回Falseanotinba是否不在b序列中,如果a不在b序列中返回True,否則返回Falseaisb判斷a、b兩個標(biāo)識符是否引用自一個對象,類似
id(a)==id(b)
,如果引用的是同一個對象則返回True,否則返回Falseaisnotb判斷a、b兩個標(biāo)識符是否不是引用自一個對象,類似
id(a)!=id(b)
,如果引用的不是同一個對象則返回True,否則返回False111《Python程序設(shè)計》單分支選擇結(jié)構(gòu)具體的實(shí)現(xiàn)形式如下:3.1.2單分支選擇結(jié)構(gòu)if條件表達(dá)式:
語句塊……或if條件表達(dá)式:語句112《Python程序設(shè)計》在單分支選擇結(jié)構(gòu)的基礎(chǔ)上,如果需要要對條件不成立,即“條件表達(dá)式”返回False的情況也需要處理的情況,可以使用雙分支結(jié)構(gòu)。雙分支選擇結(jié)構(gòu)的具體實(shí)現(xiàn)形式如下:3.1.3雙分支選擇結(jié)構(gòu)if條件表達(dá)式:
語句塊……else:
語句塊……113《Python程序設(shè)計》實(shí)際生產(chǎn)生活中有很多比雙分支選擇結(jié)構(gòu)更為復(fù)雜的業(yè)務(wù)邏輯,需要依據(jù)多種不同情況分別進(jìn)行處理,這時候要用到多分支選擇結(jié)構(gòu),多分支選擇結(jié)構(gòu)的具體實(shí)現(xiàn)形式如下:3.1.4多分支選擇結(jié)構(gòu)if條件表達(dá)式1:
語句塊1……elif條件表達(dá)式2:
語句塊2……
語句塊3……else:
語句塊n……114《Python程序設(shè)計》如果在if語句中需要再次使用if語句,則可以選擇使用嵌套if語句。具體實(shí)現(xiàn)形式如下:3.1.5選擇結(jié)構(gòu)的嵌套
if條件表達(dá)式1:
語句塊1...if條件表達(dá)式2:
語句塊2...else:
語句塊3...else:
語句塊4...115《Python程序設(shè)計》格式:條件判斷為真時的結(jié)果if判斷條件else判斷為假時的結(jié)果示例:x=x+1ifx%2==1elsex等價于:ifx%2==1:
x=x+1else:x=x意義:當(dāng)x是奇數(shù)時,x自加1,當(dāng)x時偶數(shù)時,x不變。在列表中,三元表達(dá)式可以通過真值測試方法bool返回的0或1,來選擇相應(yīng)的值。3.1.6三元表達(dá)式116《Python程序設(shè)計》循環(huán)體是一組被重復(fù)執(zhí)行的語句,循環(huán)的終止條件決定循環(huán)體能否繼續(xù)執(zhí)行。Python中提供的循環(huán)語句有while循環(huán)和for循環(huán)。3.2循環(huán)語句117《Python程序設(shè)計》while循環(huán)是在滿足某一條件的前提下,讓計算機(jī)去重復(fù)執(zhí)行相同的代碼。根據(jù)循環(huán)條件的不同設(shè)置,while循環(huán)分條件循環(huán)和無限循環(huán)兩種。3.2.1while循環(huán)1.條件while循環(huán)Python語言中條件while語句的一般形式如下:while條件表達(dá)式:
循環(huán)體118《Python程序設(shè)計》3.2.1while循環(huán)119《Python程序設(shè)計》2.while無限循環(huán)特殊情況下,有可能會需要無限循環(huán),可以通過設(shè)置條件表達(dá)式為True來實(shí)現(xiàn)無限循環(huán),編程時需要注意設(shè)置好循環(huán)退出條件,也可通過“CTRL+C”來強(qiáng)制結(jié)束。3.2.1while循環(huán)120《Python程序設(shè)計》在while循環(huán)中,當(dāng)“條件表達(dá)式”成立時,執(zhí)行循環(huán)體,如果“條件表達(dá)式”不成立時,即循環(huán)結(jié)束,可使用else定義要執(zhí)行的語句塊,具體實(shí)現(xiàn)形式如下:
while條件表達(dá)式:循環(huán)體else:
語句塊3.2.2while...else循環(huán)for循環(huán)是一種迭代循環(huán)。for循環(huán)通常用于遍歷序列(如list、tuple、range、str)、集合(如set)和映射對象(如dict)等。for循環(huán)的一般格式如下:
for變量in序列:
循環(huán)體121《Python程序設(shè)計》3.2.3for循環(huán)122《Python程序設(shè)計》for...else循環(huán)其具體實(shí)現(xiàn)形式如下:for變量in序列:
循環(huán)體else:語句塊...3.2.4for...else循環(huán)123《Python程序設(shè)計》循環(huán)體中可以使用continue、break來控制循環(huán)執(zhí)行過程。continue:用于跳過本次循環(huán)直接進(jìn)入下一次循環(huán)。break:用于退出循環(huán)不執(zhí)行后續(xù)所有剩余循環(huán)。3.3循環(huán)控制語句124《Python程序設(shè)計》break語句在while和for循環(huán)中被用來終止循環(huán)。即使循環(huán)條件沒有False條件或者序列還沒被完全遞歸完,也會停止循環(huán)語句的執(zhí)行。3.3.1break語句125《Python程序設(shè)計》continue語句用作用是跳過當(dāng)前循環(huán)的剩余語句,然后進(jìn)行下一輪循環(huán)。3.3.2continue語句126《Python程序設(shè)計》字典嵌套可以使得程序的設(shè)計更加靈活,指的是字典的value值是復(fù)合數(shù)據(jù)類型,或者字典對象本身作為其他復(fù)合數(shù)據(jù)類型的一個元素。3.3.2continue語句127《Python程序設(shè)計》pass是空語句,是為了保持程序結(jié)構(gòu)形式上的完整性。pass不做任何事情,一般用做占位語句。3.3.3pass語句128《Python程序設(shè)計》迭代器是訪問集合元素的一種方式。迭代器對象從集合的第一個元素開始訪問,直到所有的元素被訪問完結(jié)束。3.4迭代器(Iterator)129《Python程序設(shè)計》在Python中如果一個對象有__iter__()方法或__getitem__()方法,則稱這個對象是可迭代的(Iterable)。__iter__()方法:讓對象可以用for...in循環(huán)遍歷。__getitem__()方法:讓對象可以通過“實(shí)例名[index]”的方式訪問實(shí)例中的元素。3.4.1可迭代對象130《Python程序設(shè)計》迭代器定義:如果一個對象有__iter__()方法和__next__()方法,則稱這個對象是迭代器(Iterator)。需要注意的是,這兩個方法必須同時具備,才能稱之為迭代器。例如:列表List、元組Tuple、字典Dictionary、字符串String等數(shù)據(jù)類型雖然是可迭代的,但都不是迭代器,因?yàn)樗鼈兌紱]有next()方法。3.4.2迭代器定義131《Python程序設(shè)計》迭代器是有限制的,具體表現(xiàn)如下:(1)不能向后移動(2)不能回到開始(3)也無法復(fù)制一個迭代器。3.4.2迭代器定義132《Python程序設(shè)計》1.內(nèi)建工廠函數(shù)iter(iterable)內(nèi)建工廠函數(shù)iter(iterable)返回一個迭代器對象,可以將可迭代對象轉(zhuǎn)化為迭代器。2.自定義迭代器實(shí)現(xiàn)了__iter__和__next__()方法的對象即是迭代器。除了使用iter()函數(shù),還可以自己實(shí)現(xiàn)迭代器協(xié)議創(chuàng)建迭代器對象。實(shí)現(xiàn)迭代器協(xié)議就是要在重新定義類,并且在類中實(shí)現(xiàn)__iter__()和__next__()方法3.4.3創(chuàng)建迭代器對象133《Python程序設(shè)計》在Python中,由于受到內(nèi)存的限制,列表容量有限的。如果需要創(chuàng)建一個包含大量元素的列表,可能會導(dǎo)致沒有足夠內(nèi)存空間存儲列表,或者創(chuàng)建成功但耗時過長效率低下。Python中引入了一種“一邊循環(huán),一邊計算”的新機(jī)制,即當(dāng)用戶需要使用某個對象時,Python才根據(jù)事先設(shè)計好的規(guī)則開辟內(nèi)存空間創(chuàng)建這個對象供用戶使用,而不是像列表一樣事先將所有的對象都創(chuàng)建完畢之后再提供給用戶使用。這種機(jī)制在Python中稱為生成器(Generator)。3.5生成器(Generator)134《Python程序設(shè)計》生成器(Generator)是一個特殊的迭代器,通過調(diào)用一個返回迭代器的函數(shù)yield實(shí)現(xiàn)迭代操作。生成器和迭代器雖然類似,但是存在以下區(qū)別:(1)生成器函數(shù)包含一個或者多個yield;(2)當(dāng)調(diào)用生成器函數(shù)時,函數(shù)將返回一個對象,但是不會立刻向下執(zhí)行;(3)__iter__()和__next__()方法等是自動實(shí)現(xiàn)的,所以可以通過__next()__方法對對象進(jìn)行迭代;(4)一旦函數(shù)被yield,函數(shù)會暫停,控制權(quán)返回調(diào)用者;(5)局部變量和它們的狀態(tài)會被保存,直到下一次調(diào)用;(6)函數(shù)終止的時候,StopIteration會被自動拋出。3.5.1生成器定義135《Python程序設(shè)計》1.生成器推導(dǎo)式與列表推導(dǎo)式類似,可以通過將列表生成式的[]改成(),來實(shí)現(xiàn)生成器的創(chuàng)建。2.yield關(guān)鍵字在一個函數(shù)定義中包含yield關(guān)鍵字,則這個函數(shù)就不再是一個普通的函數(shù),而是一個生成器(Generator)。3.5.2生成器的創(chuàng)建136《Python程序設(shè)計》為了提升開發(fā)者的編程效率,Python語言提供了大量的內(nèi)建函數(shù)BIF(Built-inFunctions),復(fù)雜的數(shù)據(jù)結(jié)構(gòu)隱藏在內(nèi)置函數(shù)中,只要寫出相應(yīng)的業(yè)務(wù)邏輯Python就會自動得出想要的結(jié)果,可以極大降低編碼量,簡化編碼過程。3.6與條件循環(huán)相關(guān)的內(nèi)建函數(shù)137《Python程序設(shè)計》range()函數(shù)的作用是返回一個可迭代對象,語法結(jié)構(gòu)如下:
range([start,]end[,step])其中,start為起始位置,默認(rèn)從0開始;step則為步長,默認(rèn)為1;step也可以為負(fù),表示反向遍歷。此外,也可使用for循環(huán)對range返回的可迭代對象進(jìn)行遍歷。3.6.1range函數(shù)138《Python程序設(shè)計》enumerate()函數(shù)語法結(jié)構(gòu)如下:enumerate(iterable[,start])3.6.2enumerate函數(shù)iterable為可迭代對象,start是索引的起始值。enumerate()函數(shù)作用是枚舉可迭代對象iterable的每一個元素,將其組成一個索引序列,利用它可以同時獲得索引和值。如需引用enumerate對象的索引和值,可以使用for循環(huán)實(shí)現(xiàn)。139《Python程序設(shè)計》reversed()函數(shù)是使程序進(jìn)行反向遍歷的函數(shù)。reversed()函數(shù)可接收各種序列(元組、列表、字符串、區(qū)間等)參數(shù),然后返回一個“反序排列”的可迭代對象,該函數(shù)對參數(shù)本身不會產(chǎn)生任何影響。reversed()函數(shù)是返回序列seq的反向遍歷的迭代序列,其參數(shù)可以是列表、元組、字符串等。resersed函數(shù)不改變原對象。reversed()之后,只在第一次遍歷時返回反序的序列值,若再次調(diào)用,則會返回空值的結(jié)果。3.6.3reversed函數(shù)140《Python程序設(shè)計》zip()語法結(jié)構(gòu)如下:zip(seq1[seq2,[...])3.6.4zip函數(shù)zip()接受一系列可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個元組(tuple),返回一個zip對象,并且可以轉(zhuǎn)化為列表或元組。如果zip()多個參數(shù)中元素個數(shù)不相同時,以元素最少的參數(shù)為準(zhǔn),對各參數(shù)相應(yīng)位置元素進(jìn)行組合。當(dāng)zip()有多個參數(shù)時,可利用for循環(huán)進(jìn)行并行迭代。141《Python程序設(shè)計》*zip()函數(shù)是zip()函數(shù)的逆過程,將zip對象還原為組合前的數(shù)據(jù)。3.6.5*zip函數(shù)重點(diǎn)介紹了Python中的條件語句和循環(huán)語句的使用。對Python中迭代器、生成器的使用方法做了進(jìn)一步講解。最后,介紹了使循環(huán)機(jī)制更為靈活的Python內(nèi)建函數(shù)。本
章
小
結(jié)
程序設(shè)計第4章Python復(fù)合數(shù)據(jù)類型一、List(列表)二、Tuple(元組)三、Dictionary(字典)第4章Python復(fù)合數(shù)據(jù)類型本章目錄四、Set
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六一入隊(duì)儀式主持詞
- 音樂說課稿15篇
- 師德師風(fēng)建設(shè)校長講話稿
- 幼兒園幼兒教學(xué)工作總結(jié)(33篇)
- 智能制造解決方案
- 2024年度礦產(chǎn)資源開發(fā)利用施工合同
- 公司貸款用款合同模板
- 掌握數(shù)學(xué)寓教于樂模板
- 小區(qū)球場租賃合同范例
- 2024年合作方廉潔承諾與保密協(xié)議
- 紅色古色綠色文化教育活動策劃方案
- 《Monsters 怪獸》中英對照歌詞
- 《正交分解法》導(dǎo)學(xué)案
- 建筑材料知識點(diǎn)匯總
- 平面構(gòu)成作品欣賞
- 英語管道專業(yè)術(shù)語
- 淺談?wù)Z文課程內(nèi)容的橫向聯(lián)系
- 社會工作畢業(yè)論文(優(yōu)秀范文8篇)
- 五篇500字左右的短劇劇本
- 新形勢下如何加強(qiáng)醫(yī)院新聞宣傳工作
- 第十一章總集與別集(杜澤遜版)
評論
0/150
提交評論