Python 基礎(chǔ)學(xué)習(xí)筆記.doc_第1頁
Python 基礎(chǔ)學(xué)習(xí)筆記.doc_第2頁
Python 基礎(chǔ)學(xué)習(xí)筆記.doc_第3頁
Python 基礎(chǔ)學(xué)習(xí)筆記.doc_第4頁
Python 基礎(chǔ)學(xué)習(xí)筆記.doc_第5頁
已閱讀5頁,還剩68頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Python 基礎(chǔ)學(xué)習(xí)筆記基于Python語言程序設(shè)計(jì)基礎(chǔ)(第2版)第一部分 初識(shí)Python語言第1章 程序設(shè)計(jì)基本方法1.1 計(jì)算機(jī)的概念 計(jì)算機(jī)是根據(jù)指令操作數(shù)據(jù)的設(shè)備,具備功能性和可編程性兩個(gè)基本特性。 計(jì)算機(jī)技術(shù)發(fā)展階段:1. 第一階段:1946-1981年,“計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)階段”。2. 第二階段:1982-2007年,“計(jì)算機(jī)網(wǎng)絡(luò)和視窗階段”。3. 第三階段:2008年至今,“復(fù)雜信息系統(tǒng)階段”。4. 第四階段:月20年后某個(gè)時(shí)期開始,“人工智能階段”。1.2程序設(shè)計(jì)語言1.2.1程序設(shè)計(jì)語言概述 機(jī)器語言:直接使用二進(jìn)制代碼表達(dá)指令,可被計(jì)算機(jī)硬件直接識(shí)別和執(zhí)行。不同計(jì)算機(jī)結(jié)構(gòu)的機(jī)器指令不同。 匯編語言:使用助記符對(duì)應(yīng)機(jī)器語言中的指令,可直接操作計(jì)算機(jī)硬件。不同計(jì)算機(jī)結(jié)構(gòu)的匯編指令不同。機(jī)器語言和匯編語言都直接操作計(jì)算機(jī)硬件并基于此設(shè)計(jì),統(tǒng)稱“低級(jí)語言”。 高級(jí)語言:用更接近自然語言的方式描述計(jì)算問題。代碼只與編程語言有關(guān),與計(jì)算機(jī)結(jié)構(gòu)無關(guān)。1.2.2編譯和解釋高級(jí)語言按執(zhí)行方式可分為采用編譯執(zhí)行的靜態(tài)語言和采用解釋執(zhí)行的腳本語言。 編譯是將源代碼轉(zhuǎn)換成目標(biāo)代碼的過程。 解釋是將源代碼逐條轉(zhuǎn)換成目標(biāo)代碼同時(shí)逐條運(yùn)行目標(biāo)代碼的過程。1.2.3計(jì)算機(jī)編程 我學(xué)習(xí)Python的原因:1. 通過編程實(shí)現(xiàn)自動(dòng)化,提高效率。2. 通過編程了解一個(gè)新的廣闊世界。 學(xué)習(xí)一門編程語言(重點(diǎn)在于練習(xí))1. 掌握該語言的語法2. 結(jié)合問題設(shè)計(jì)程序結(jié)構(gòu)3. 掌握解決問題的能力1.3Python語言概述1.3.1 Python語言的發(fā)展Python語言是一個(gè)語法簡(jiǎn)潔、跨平臺(tái)、可擴(kuò)展的開源通用腳本語言。 Python語言誕生于1990年,創(chuàng)世人為Guido。 2000年10月,Python 2.0正式發(fā)布,2010年,Python 2.x系列發(fā)布最后一版(2.7)。 2008年12月,Python 3.0正式發(fā)布,解釋器內(nèi)部采用完全面向?qū)ο蟮姆绞綄?shí)現(xiàn),代價(jià)是3.x系列版本無法向下兼容2.x系列的既有語法。Python 2.x已經(jīng)是遺產(chǎn),Python 3.x是這個(gè)語言的現(xiàn)在和未來。1.3.2編寫Hello程序print(Hello World)1.3.3 Python語言的特點(diǎn) 語法簡(jiǎn)潔 可跨平臺(tái) 應(yīng)用廣泛 支持中文 強(qiáng)制可讀:通過強(qiáng)制縮進(jìn)體現(xiàn)語句間的邏輯關(guān)系提高了程序的可讀性 模式多樣:語法層面同時(shí)支持面向過程和面向?qū)ο髢煞N編程方式 粘性擴(kuò)展:通過接口和函數(shù)集成其他語言編寫的代碼 開源理念 庫類豐富1.4 Python語言開發(fā)環(huán)境配置 Python解釋器 IDLE開發(fā)環(huán)境 交互式啟動(dòng) 文件式啟動(dòng) Python語言集成開發(fā)環(huán)境PyCharm1.5 程序的基本編寫方法1.5.1 IPO程序編寫方法每個(gè)程序都有統(tǒng)一的運(yùn)算模式:輸入數(shù)據(jù)、處理數(shù)據(jù)和輸出數(shù)據(jù)。這種樸素的運(yùn)算模式形成了基本的程序編寫方法:IPO(Input,Process,Output)方法。IPO不僅是程序設(shè)計(jì)的基本方法,也是描述計(jì)算問題的方式。1.5.2理解問題的計(jì)算部分 使用計(jì)算機(jī)解決問題的6個(gè)步驟:1. 分析問題2. 劃分邊界3. 設(shè)計(jì)算法4. 編寫程序5. 調(diào)試測(cè)試6. 升級(jí)維護(hù)第2章 Python程序解析2.1 Python程序語法元素分析Python程序包括格式框架、注釋、變量、表達(dá)式、分支語句、循環(huán)語句、函數(shù)等語法元素。程序的格式框架 Python語言采用嚴(yán)格的“縮進(jìn)”來表明程序的格式框架,縮進(jìn)表達(dá)了所屬關(guān)系 在代碼編寫中縮進(jìn)可通過Tab鍵實(shí)現(xiàn),也可用多個(gè)空格實(shí)現(xiàn),建議采用4個(gè)空格方式書寫代碼注釋 注釋是輔助性文字,不被執(zhí)行 單行注釋:以#開頭#這是注釋 多行注釋:以(3個(gè)單引號(hào))開頭和結(jié)尾這是注釋這也是注釋這還是注釋命名 命名是為變量關(guān)聯(lián)標(biāo)識(shí)符的過程,用于確保程序元素的唯一性 標(biāo)識(shí)符由字母、數(shù)字、下劃線(和漢字)等字符及其組合構(gòu)成 標(biāo)識(shí)符的首字符不能是數(shù)字 ,且中間不能出現(xiàn)空格 標(biāo)識(shí)符對(duì)大小寫敏感保留字 保留字(Keyword)也被稱為關(guān)鍵字,是被編程語言內(nèi)部定義并保留使用的標(biāo)識(shí)符 Python 的標(biāo)準(zhǔn)庫提供了一個(gè) keyword 模塊,可以輸出當(dāng)前版本的所有關(guān)鍵字: import keyword ls=keyword.kwlist lslen(ls)33Python 3 有33個(gè)保留字1. True2. False3. None4. and5. as6. assert7. break8. class9. continue10. def11. del12. elif13. else14. except15. finally16. for17. from18. global19. if20. import21. in22. is23. lambda24. nonlocal25. not26. or27. pass28. raise29. return30. try31. while32. with33. yield字符串 字符串(string)類型在程序中表示文本 字符串是字符的序列,可以按照單個(gè)字符或字符片段進(jìn)行索引 字符串包括兩種序號(hào)體系:正向遞增序號(hào)、反向遞減序號(hào) 正向遞增序號(hào):0L-1 反向遞減序號(hào):-L-1 區(qū)間訪問方式:N:M(不包含M),可以混合使用正向遞增序號(hào)和反向遞減序號(hào) 字符串比較本質(zhì)上是字符串對(duì)應(yīng)Unicode編碼的比較賦值語句 Python語言中,“=”表示“賦值”,將右側(cè)的計(jì)算結(jié)果賦給左側(cè)變量 同步賦值語句:可同時(shí)給多個(gè)變量賦值,=,分支語句 分支語句的作用是根據(jù)判斷條件選擇程序執(zhí)行路徑if:elif:else:循環(huán)語句 循環(huán)語句的作用是根據(jù)判斷條件確定一段程序是否再執(zhí)行一次或多次while () :for i in range():input()函數(shù) 使用input()函數(shù)從控制臺(tái)獲得用戶輸入 input()函數(shù)以字符串類型返回結(jié)果 = input(提示性文字)input(請(qǐng)輸入:)eval()函數(shù) eval()函數(shù)的作用是間輸入的字符串變成Python語句并執(zhí)行x=eval(input(請(qǐng)輸入:)Python語法允許在表達(dá)式內(nèi)部標(biāo)記之間增加空格,適當(dāng)增加空格有助于提高代碼可讀性。但應(yīng)注意,不能改變與縮進(jìn)相關(guān)的空格數(shù)量、不能再變量名等命名中間增加空格。print()函數(shù) print()函數(shù)可以輸出字符信息,也可以用字符的形式輸出變量 輸出字符信息時(shí),可以直接將待輸出內(nèi)容傳遞給print()函數(shù) 輸出變量值時(shí),print()函數(shù)用槽格式和過format()方法將變量和字符串結(jié)合到一起輸出函數(shù) 函數(shù)可以理解為對(duì)一組表達(dá)特定功能表達(dá)式的封裝,將特定功能代碼編寫在一個(gè)函數(shù)里,使程序模塊化更好,便于閱讀和復(fù)用 可通過保留字def自定義函數(shù)2.2 對(duì)象(庫)的調(diào)用 .()表示調(diào)用一個(gè)對(duì)象的方法(),或調(diào)用一個(gè)函數(shù)庫中的函數(shù)()面向?qū)ο缶幊淌且环N基于對(duì)象的編程范式。對(duì)象是事物的一種抽象,是一個(gè)實(shí)體,包含屬性和方法兩部分。屬性是對(duì)象中的變量,方法是對(duì)象能完成的操作。 通過保留字import引用函數(shù)庫1. import :程序調(diào)用庫中所有函數(shù),使用庫中函數(shù)格式如下.()import turtleturtle.fd(100) #控制畫筆向當(dāng)前行進(jìn)方向前進(jìn)1002. from import :from import from import *,“ * ”是通配符,表示所有函數(shù) 調(diào)用庫中函數(shù)不再需要使用庫名,格式如下()from turtle import *fd(100)2.3 turtle庫語法元素分析tuetle庫是一個(gè)圖形繪制函數(shù)圖繪圖坐標(biāo)體系 tuetle庫繪制圖形的基本框架是一個(gè)海龜在坐標(biāo)系中爬行(前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)),其軌跡形成了繪制圖形。 初始位置位于坐標(biāo)(0,0),行進(jìn)方向?yàn)樗接曳健?使用turtle.setup()函數(shù)設(shè)置主窗體的大小和位置。turtle.setup(width,height,startx,stary) width,height分別表示窗口寬度和高度,值是整數(shù)表示像素值,值時(shí)小數(shù)表示與屏幕的比例 startx,stary分別表示窗口左側(cè)和頂部與屏幕左側(cè)和頂部的像素距離,如果值是none,窗口位于屏幕水平/垂直中央turtle.setup(0.8,0.8)畫筆控制函數(shù) turtle.penup():抬起畫筆,之后移動(dòng)畫筆不繪制形狀別名:turtle.pd()、turtle.down() turtle.pensize(width):設(shè)置畫筆寬度,width無參數(shù)或?yàn)镹one時(shí)返回當(dāng)前畫筆寬度別名:turtle.width() turtle.pencolor():設(shè)置畫筆顏色,無參數(shù)輸入時(shí)返回當(dāng)前畫筆顏色。(colorstring)參數(shù)表示顏色的字符串;(r,g,b)參數(shù)表示顏色對(duì)應(yīng)的RGB值顏色顏色字符串GRB十六進(jìn)制黑色black0,0,0#FFFFFF白色white255,255,255#000000灰色grey190,190,190#BEBEBE形狀繪制函數(shù) turtle.fd(distance):控制畫筆向當(dāng)前行進(jìn)方向前進(jìn)distance,值為負(fù)數(shù)表示向相反方向前進(jìn)別名:turtle.forward(distance) turtle.seth(to_angle):控制畫筆繪制方向,(to_angle)參數(shù)是絕對(duì)方向角度值(turtle庫的坐標(biāo)體系以正東方向?yàn)榻^對(duì)0度、正北方向?yàn)榻^對(duì)90度) turtle.circle(radius,extent=None):根據(jù)半徑radius繪制extent角度的弧形radius值為正時(shí),半徑在畫筆左側(cè),值為負(fù)時(shí),半徑在畫筆右側(cè);extent為正時(shí),畫筆逆時(shí)針前進(jìn),extent為負(fù)時(shí),畫筆順時(shí)針倒退,extent不設(shè)置參數(shù)或參數(shù)為None時(shí),繪制整圓。第二部分 深入Python語言第3章 基本數(shù)據(jù)類型3.1 數(shù)字類型 Python語言提供整數(shù)、浮點(diǎn)數(shù)、復(fù)數(shù)3種數(shù)字類型整數(shù)類型 整數(shù)類型共有4種進(jìn)制表示:十進(jìn)制、二進(jìn)制、八進(jìn)制和十六進(jìn)制 默認(rèn)情況整數(shù)采用十進(jìn)制,其他進(jìn)制需要增加引導(dǎo)符號(hào)進(jìn)制種類引導(dǎo)符號(hào)描述十進(jìn)制無默認(rèn)情況二進(jìn)制0b或0B由字符0和1組成八進(jìn)制0o或0O由字符0到7組成十六進(jìn)制0x或0X由字符0到9、a到f、A到F組成浮點(diǎn)數(shù)類型 浮點(diǎn)數(shù)類型與數(shù)學(xué)中實(shí)數(shù)的概念一致,表示帶有小數(shù)的數(shù)值 Python語言要求所有浮點(diǎn)數(shù)必須帶有小數(shù)部分(可以是0),一區(qū)分浮點(diǎn)數(shù)和證書類型 浮點(diǎn)數(shù)有2中表示方法:十進(jìn)制表示和科學(xué)計(jì)數(shù)法表示科學(xué)計(jì)數(shù)法使用字母e或E作為冪的符號(hào),以10為基數(shù),含義如下:e=a*10b2 由于計(jì)算機(jī)內(nèi)部采用二進(jìn)制運(yùn)算,浮點(diǎn)數(shù)進(jìn)行超過15位數(shù)字計(jì)算會(huì)產(chǎn)生誤差使用整數(shù)表達(dá)浮點(diǎn)數(shù)的方法是高精確度運(yùn)算的基本方法之一。 對(duì)于高精度科學(xué)計(jì)算外的絕大部分運(yùn)算而言,浮點(diǎn)數(shù)類型已足夠可靠,一般認(rèn)為浮點(diǎn)數(shù)類型沒有范圍限制,運(yùn)算結(jié)果準(zhǔn)確復(fù)數(shù)類型 復(fù)數(shù)類型表示數(shù)學(xué)中的復(fù)數(shù)復(fù)數(shù)可以看作是二元有序?qū)崝?shù)對(duì)(a,b),表示為a+bj,其中a是實(shí)數(shù)部分,簡(jiǎn)稱實(shí)部,b是虛數(shù)部分,簡(jiǎn)稱虛部。 Python 語言中,復(fù)數(shù)的虛部通過后綴j或J表示1.23e-4+5.67e+89j 復(fù)數(shù)類型中實(shí)數(shù)部分和虛數(shù)部分的數(shù)值都是浮點(diǎn)數(shù)類型,對(duì)于實(shí)數(shù)z,可用z.real和z.imag分別獲得它的實(shí)部和虛部(1.23e-4+5.67e+89j).real(1.23e-4+5.67e+89j).imag3.2 數(shù)字類型的操作 Python 解釋器為數(shù)字類型提供數(shù)值運(yùn)算操作符、數(shù)值運(yùn)算函數(shù)、類型轉(zhuǎn)換函數(shù)等操作方法內(nèi)置的數(shù)值運(yùn)算操作符(共9個(gè))操作符描述x+yx與y之和x-yx與y之差x*yx與y之積x/yx與y之商x/yx與y之整數(shù)商,即不大于x與y之商的最大整數(shù)x%yx與y之商的余數(shù),也稱為模運(yùn)算-xx的負(fù)值+xx本身x*yx的y次冪,即xy 操作符運(yùn)算的結(jié)果可能會(huì)改變數(shù)字類型,3種數(shù)字類型之間存在一種逐漸擴(kuò)展的關(guān)系:整數(shù)浮點(diǎn)數(shù)復(fù)數(shù) 上述9個(gè)二元數(shù)學(xué)操作符都有與之對(duì)應(yīng)的增強(qiáng)賦值操作符x+=y 等價(jià)于 x=x+y 模運(yùn)算(%)在編程中主要應(yīng)用于具有周期規(guī)律的場(chǎng)景內(nèi)置的數(shù)值運(yùn)算函數(shù)(共6個(gè))函數(shù)描述abs(x)x的絕對(duì)值divmod(x,y)(x/y,x%y),輸出為二元組形式(也稱為元組類型)pow(x,y,z)(x*y)%z,表示該參數(shù)可省略round(x,ndigits)對(duì)x四舍五入,保留ndigits位小數(shù),round(x)返回四舍五入的整數(shù)值max(x1,x2,xn)x1,x2,xn的最大值,n沒有限定min(x1,x2,xn)x1,x2,xn的最小值,n沒有限定內(nèi)置的數(shù)字類型轉(zhuǎn)換函數(shù)(共3個(gè))函數(shù)描述int(x)將x轉(zhuǎn)換為整數(shù),x可以是浮點(diǎn)數(shù)或字符串float(x)將x轉(zhuǎn)換為浮點(diǎn)數(shù),x可以是整數(shù)或字符串complex(re,im)生成一個(gè)復(fù)數(shù),實(shí)部為re,虛部為im,re可以是整數(shù)、浮點(diǎn)數(shù)或字符串,im可以是整數(shù)或浮點(diǎn)數(shù)但不能為字符串 int()函數(shù)將浮點(diǎn)數(shù)類型轉(zhuǎn)換為整數(shù)時(shí),小數(shù)部分會(huì)直接被舍棄 復(fù)數(shù)不能直接轉(zhuǎn)換為其他數(shù)字類型,可通過.real和.imag將復(fù)數(shù)的實(shí)部和虛部分別轉(zhuǎn)換3.3 字符串類型及其操作字符串類型的表示 字符串是字符的序列表示 單引號(hào)字符串:?jiǎn)我?hào)表示可以使用雙引號(hào)作為字符串的一部分 雙引號(hào)字符串:雙引號(hào)表示可以使用單引號(hào)作為字符串的一部分 三引號(hào)字符串:三引號(hào)表示可以使用雙引號(hào)、單引號(hào)作為字符串的一部分也可以換行 Python 字符串提供區(qū)間訪問方式,采用N:M格式。表示從字符串中從N到M(不包含M)的字符串,可以混合使用正向遞增序號(hào)和反向遞減序號(hào) 反斜杠字符()在字符串中表示轉(zhuǎn)義1. n 表示換行2. 表示反斜杠3. 表示單引號(hào)4. 表示雙引號(hào)5. t 表示制表符(Tab)基本的字符串操作符(共5個(gè))操作符描述x+y連接兩個(gè)字符串x與yx*n或n*x復(fù)制n次字符串xx in s如果x是s的子字符串,返回Ture,否則返回Falsestri索引,返回第i個(gè)字符strN:M切片,返回索引第N到第M個(gè)字符內(nèi)置的字符串處理函數(shù)(共6個(gè))函數(shù)描述len(x)返回字符串x的長(zhǎng)度,也可返回其他組合數(shù)據(jù)類型元素個(gè)數(shù)str(x)返回任意類型x所對(duì)應(yīng)的字符串形式chr(x)返回Unicode編碼x對(duì)應(yīng)的單字符ord(x)返回單字符表示的Unicode編碼hex(x)返回整數(shù)x對(duì)應(yīng)十六進(jìn)制數(shù)的小寫形式字符串oct(x)返回整數(shù)x對(duì)應(yīng)八進(jìn)制數(shù)的小寫形式字符串內(nèi)置的字符串處理方法(共43個(gè),常用16個(gè)) 在Python解釋器內(nèi)部,所有數(shù)據(jù)類型都采用面向?qū)ο蟮姆绞綄?shí)現(xiàn),封裝為一個(gè)類 字符串是一個(gè)類,具有類似.()形式的字符串處理函數(shù),稱為方法方法描述str.lower()返回字符串str的副本,全部字符小寫str.upper()返回字符串str的副本,全部字符大寫str.islower()當(dāng)str所有字符都是小寫時(shí),返回Ture,否則返回Falsestr.isprintable()當(dāng)str所有字符都是可打印的,返回Ture,否則返回Falsestr.isnumeric()當(dāng)str所有字符都是數(shù)字時(shí),返回Ture,否則返回Falsestr.isspace()當(dāng)str所有字符都是空格,返回Ture,否則返回Flasestr.endswith(suffix,start,end)strstart:end以suffix結(jié)尾返回Ture,否則返回Flasestr.srartswith(prefix,start,end)strstart:end以prefix開始返回Ture,否則返回Flasestr.split(sep=None,maxsplit=-1)返回一個(gè)列表,由str根據(jù)sep被分割的部分構(gòu)成str.count(sub,start,end返回strstart:end中sub子串出現(xiàn)的次數(shù)str.replace(old,new,count)返回字符串str的副本,所有old子串被替換為new,如果count給出,則前count次old出現(xiàn)被替換str.center(width,fillchar)字符串居中函數(shù)str.strip(chars)返回字符串str的副本,在其左側(cè)和右側(cè)去掉chars中列出的字符str.zfill(width)返回字符串str副本,長(zhǎng)度為width。不足部分在其左側(cè)添加0str.format()返回字符串str的一種排版格式str.join(iterable)返回一個(gè)新字符串,由組合數(shù)據(jù)類型iterable變量的每個(gè)元素組成,元素間用str分隔3.4 字符串類型的格式化 字符串通過format()方法進(jìn)行格式化處理字符串格式化用于解決字符串和變量同時(shí)輸出時(shí)的格式安排format()方法的基本使用 字符串format()方法的基本使用格式:.format() 模板字符串由一系列槽組成,用來控制修改字符串中嵌入值出現(xiàn)的位置(槽用表示,如果中沒有序號(hào),則按照出現(xiàn)順序替換) 如需輸入,采用表示;表示圓周率12是0.format(無理數(shù),3.1415926,)format()方法的格式控制 format()方法模板字符串的槽除了包括參數(shù)序號(hào),還可包括格式控制信息。槽內(nèi)部樣式: 格式控制標(biāo)記用于控制參數(shù)顯示時(shí)的格式:引導(dǎo)符號(hào)用于填充的單個(gè)字符右對(duì)齊、居中對(duì)齊槽的設(shè)定輸出寬度數(shù)字的千位分隔符 適用于整數(shù)和浮點(diǎn)數(shù)浮點(diǎn)數(shù)小數(shù)部分的精度或字符串的最大輸出長(zhǎng)度整數(shù)類型b,c,d,o,x,X;浮點(diǎn)數(shù)類型e,E,f,% 指寬度內(nèi)除了參數(shù)外的字符采用什么方式表示,默認(rèn)為空格 指參數(shù)在寬度內(nèi)輸出時(shí)的對(duì)齊方式 指當(dāng)前槽的設(shè)定輸出字符寬度,若實(shí)際參數(shù)長(zhǎng)度比設(shè)定值大,則使用參數(shù)實(shí)際長(zhǎng)度 用于顯示數(shù)字類型的千分位分隔符 對(duì)于浮點(diǎn)數(shù),表示小數(shù)部分輸出的有效位數(shù);對(duì)于字符串,表示輸出的最大長(zhǎng)度 表示輸出整數(shù)好浮點(diǎn)數(shù)類型的格式規(guī)劃。對(duì)于整數(shù)類型,1. b:整數(shù)的二進(jìn)制;2. c:整數(shù)對(duì)應(yīng)的Unicode字符;3. d:整數(shù)的十進(jìn)制;4. o:整數(shù)的八進(jìn)制5. x:整數(shù)的小寫十六進(jìn)制6. X:整數(shù)的大寫十六進(jìn)制對(duì)于浮點(diǎn)數(shù)類型,7. e:浮點(diǎn)數(shù)對(duì)應(yīng)的小寫字母e的指數(shù)形式8. E:浮點(diǎn)數(shù)對(duì)應(yīng)的大寫字母E的指數(shù)形式9. f:浮點(diǎn)數(shù)的標(biāo)準(zhǔn)浮點(diǎn)形式10. %:浮點(diǎn)數(shù)的百分形式第4章 程序的控制結(jié)構(gòu)4.1 程序的基本結(jié)構(gòu)程序流程圖 起止框表示一個(gè)程序的開始和結(jié)束 判斷框判斷一個(gè)條件是否成立,并根據(jù)判斷結(jié)果不同選擇不同的執(zhí)行路徑 處理框表示一組處理過程 輸入/輸出框表示數(shù)據(jù)輸入或結(jié)果輸出 注釋框增加程序的解釋 流向線以帶箭頭的直線或曲線形式指示程序的執(zhí)行路徑 連接點(diǎn)將多個(gè)流程圖連接到一起程序的基本結(jié)構(gòu) 程序有3種基本結(jié)構(gòu)組成:順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu) 順序結(jié)構(gòu):程序按照線性順序依次執(zhí)行 分支結(jié)構(gòu):程序根據(jù)條件判斷結(jié)果而選擇不同向前執(zhí)行路徑的一種運(yùn)行方式(分支結(jié)構(gòu)包括單分支結(jié)構(gòu)和二分支結(jié)構(gòu);p97) 循環(huán)結(jié)構(gòu):程序根據(jù)條件判斷結(jié)果向后反復(fù)執(zhí)行(根據(jù)觸發(fā)條件不同,循環(huán)結(jié)構(gòu)包括條件循環(huán)和遍歷循環(huán))4.2 程序的分支結(jié)構(gòu)單分支機(jī)構(gòu):if語句if語句語法格式:if : 語句塊是if條件滿足后執(zhí)行的一個(gè)或多個(gè)語句序列 語句塊中語句通過與if所在行形成縮進(jìn)表達(dá)包含關(guān)系 if語句首先評(píng)估條件的結(jié)果值,若為Ture則執(zhí)行語句塊中的語句序列;若為False則跳過語句塊中的語句 if語句中條件部分可以使用任何能夠產(chǎn)生Ture或False的語句或函數(shù)形成判斷條件最常見的方式是采用關(guān)系操作符關(guān)系操作符數(shù)學(xué)符號(hào)操作符含義大于=大于等于=等于!=不等于 Python使用=表示賦值語句,使用=表示等于二分支結(jié)構(gòu):if-else語句if-else語句語法格式:if : else : 二分支語句用于區(qū)分條件的兩種可能 if條件滿足時(shí)執(zhí)行語句塊1 if條件不滿足時(shí)執(zhí)行語句塊2二分支結(jié)構(gòu)的簡(jiǎn)潔表達(dá)(適合通過判斷返回特定值) if else 表達(dá)式1/2一般是數(shù)字類型或字符串類型的一個(gè)值多分支結(jié)構(gòu):if-elif-else語句if-elif-else語句語法格式:if : elif : .else: Python依次評(píng)估尋找第一個(gè)結(jié)果為Ture的條件,執(zhí)行該條件下的語句并跳過整個(gè)if-elif-else結(jié)構(gòu),執(zhí)行后面的語句 如果沒有任何條件成立,執(zhí)行else下面的語句塊 else語句是可選的4.3 程序的循環(huán)結(jié)構(gòu)遍歷循環(huán):for語句for語句語法格式for in : 遍歷循環(huán)可以理解為從遍歷結(jié)構(gòu)中中逐一提取元素,放在循環(huán)變量中,對(duì)于所提取的每個(gè)元素執(zhí)行一次語句塊循環(huán)N次:for i in rang(N): 遍歷文件的每一行:for line in fi: 遍歷字符串sfor c in s: 遍歷列表lsfor item in ls: 遍歷循環(huán)的擴(kuò)展模式for in : else: 當(dāng)for循環(huán)正常執(zhí)行后,程序會(huì)繼續(xù)執(zhí)行else語句遍歷循環(huán):while語句while語句語法格式while : 當(dāng)條件判斷為Ture時(shí),循環(huán)體重復(fù)執(zhí)行語句塊中的語句;當(dāng)條件為Flase時(shí),循環(huán)終止,執(zhí)行與while同級(jí)別縮進(jìn)的后續(xù)語句無限循環(huán)的擴(kuò)展模式while : else: 當(dāng)while循環(huán)正常執(zhí)行后,程序會(huì)繼續(xù)執(zhí)行else語句中的內(nèi)容,else語句只在循環(huán)正常執(zhí)行后才執(zhí)行循環(huán)保留字:break和continue break用來跳出最內(nèi)層for或while循環(huán),脫離該循環(huán)后程序從循環(huán)代碼后繼續(xù)執(zhí)行 continue用來結(jié)束當(dāng)前當(dāng)次循環(huán),即跳出循環(huán)體中下面尚未執(zhí)行的語句,但不跳出當(dāng)前循環(huán)for s in BIT: for i in rang(2): print(s,end=) if s=I: break BBTT break語句與continue語句的區(qū)別是,break語句結(jié)束整個(gè)循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立;continue語句只結(jié)束本次循環(huán),而不終止整個(gè)循環(huán)的執(zhí)行for循環(huán)和while循環(huán)中都有一個(gè)else擴(kuò)展用法。else語句僅在循環(huán)正常遍歷了所有內(nèi)容或由于條件不成立而結(jié)束循環(huán)的條件下執(zhí)行。for s in PYTHON: if s =T: continue print(s,end=)else: print(正常退出)PYHON 正常退出for s in PYTHON: if s =T: break print(s,end=)else: print(正常退出)PY4.4 random庫的使用random庫采用梅森旋轉(zhuǎn)算法生成偽隨機(jī)數(shù)序列,可用于除隨機(jī)性要求更高的加解密算法外的大多數(shù)工程應(yīng)用 Python內(nèi)置的random庫主要用于產(chǎn)生各種分布的偽隨機(jī)數(shù)序列 random庫提供9個(gè)常用函數(shù)函數(shù)描述seed(a=None)初始化隨機(jī)數(shù)種子,默認(rèn)值為當(dāng)前系統(tǒng)時(shí)間random()生成一個(gè)0.0,1.0之間的隨機(jī)小數(shù)randint(a,b)生成一個(gè)a,b之間的整數(shù)getrandbits(k)生成一個(gè)k比特長(zhǎng)度的隨機(jī)整數(shù)randrange(start,stop,step)生成一個(gè)start,stop之間以step為步數(shù)的隨機(jī)整數(shù)uniform(a,b)生成一個(gè)a,b之間的隨機(jī)小數(shù)choice(seq)從序列類型,例如列表中隨機(jī)返回一個(gè)元素shuffle(seq)將序列類型中的元素隨機(jī)排列,返回打亂后的序列sample(pok,k)從pop類型中隨機(jī)選取k個(gè)元素,以列表類型返回 生成隨機(jī)數(shù)之前可通過seed()函數(shù)指定隨機(jī)數(shù)種子,隨機(jī)數(shù)種子一般是一個(gè)整數(shù),只要種子相同,每次生成的隨機(jī)數(shù)序列也相同4.5 程序的異常處理Python通過try、except等保留字提供異常處理功能異常處理:try-except語句 Python使用try-except語句實(shí)現(xiàn)異常處理try: except : 異常的高級(jí)用法 try-except語句可以支持多個(gè)except語句try: except : .except : except : 異常語句還可以與else和finally保留字配合使用try: :except : else: finally: 第5章 函數(shù)和代碼復(fù)用5.1 函數(shù)的基本使用函數(shù)的定義 函數(shù)是一段具有特定功能的、可重用的語句組 使用函數(shù)主要有兩個(gè)目的:降低編程難度和代碼重用 Python使用def保留字定義一個(gè)函數(shù)def(): return 函數(shù)名可以是任何有效的Python標(biāo)識(shí)符 參數(shù)列表是調(diào)用該函數(shù)是傳遞給它的值,可以有零個(gè)(保留圓括號(hào))、一個(gè)或多個(gè)(用逗號(hào)分隔) 函數(shù)體是函數(shù)每次被調(diào)用是執(zhí)行的代碼 當(dāng)需要返回值時(shí)使用保留字return和返回值劉表,否則函數(shù)可以沒有return語句,在函數(shù)體結(jié)束時(shí)將控制權(quán)返回給調(diào)用者函數(shù)調(diào)用和執(zhí)行的一般形式()函數(shù)的調(diào)用過程1. 調(diào)用程序在調(diào)用處暫停執(zhí)行2. 在調(diào)用時(shí)將實(shí)參復(fù)制給形參3. 執(zhí)行函數(shù)體語句4. 函數(shù)調(diào)用結(jié)束給出返回值,程序回到調(diào)用前的暫停處繼續(xù)執(zhí)行l(wèi)ambda函數(shù) lambda函數(shù)又稱匿名函數(shù),將函數(shù)名作為函數(shù)結(jié)果返回=lambda:lambda函數(shù)與正常函數(shù)一樣,等價(jià)于下面表達(dá)式:def(): return lambda函數(shù)用于定義簡(jiǎn)單的、能夠在一行內(nèi)表示的函數(shù),返回一個(gè)函數(shù)類型f=lambda q,w,e,r:q+w+e+rf(1,2,3,4)10 lambda函數(shù)用于需要函數(shù)對(duì)象的場(chǎng)景5.2 函數(shù)的參數(shù)傳遞函數(shù)可定義可選參數(shù),使用參數(shù)的位置或名稱傳遞參數(shù)值,根據(jù)函數(shù)中變量的不同作用域有不同的函數(shù)返回值方式可選參數(shù)和可變數(shù)量參數(shù) 函數(shù)定義時(shí)部分參數(shù)可直接為存在默認(rèn)值的參數(shù)指定默認(rèn)值,當(dāng)函數(shù)被調(diào)用時(shí)如果沒有傳入對(duì)應(yīng)的參數(shù)值則使用函數(shù)定義時(shí)的的默認(rèn)值替代 默認(rèn)參數(shù)必須指向不變對(duì)象 函數(shù)調(diào)用時(shí)需要按順序輸入?yún)?shù),可選參數(shù)必須定義在非可選參數(shù)后dfe r(str,times=2): print(str*times)r(T)TTr(T)TTTT 函數(shù)定義時(shí)可設(shè)計(jì)可變數(shù)量參數(shù),通過在參數(shù)前加星號(hào)(*)實(shí)現(xiàn) 帶有星號(hào)的可變參數(shù)只能出現(xiàn)在參數(shù)列表最后,調(diào)用時(shí)這些參數(shù)被單指元組類型傳遞到函數(shù)中def vfunc(a,*b) print(type(b) for n in b: a+=n return avfunc(1,2,3,4,5)15 #1+2=3;3+3=6;6+4=10;10+5=15參數(shù)的位置和名稱傳遞 函數(shù)定義時(shí)實(shí)參默認(rèn)采用按照位置順序的方式傳遞給函數(shù),這種方式在參數(shù)很多的情況下可讀性較差 Python提供了按照形參名稱輸入實(shí)參的方式,調(diào)用函數(shù)時(shí)指定參數(shù)名稱,參數(shù)之間的順序可任意調(diào)整函數(shù)的返回值 return語句用來退出函數(shù)并將程序返回到函數(shù)被調(diào)用的位置繼續(xù)執(zhí)行 return語句可同時(shí)將0個(gè)、1個(gè)或多個(gè)函數(shù)運(yùn)算后的結(jié)果返回給函數(shù)被調(diào)用的位置 函數(shù)可以沒有return,此時(shí)函數(shù)不返回值 函數(shù)也可以用return返回多個(gè)值,多個(gè)值以元組類型保存def func(a,b): return b,as=func(t,2)print(s,type(s)(2, t) 5.4 datetime庫的使用Python時(shí)間處理的標(biāo)準(zhǔn)函數(shù)庫datetime提供里一批顯示日期和時(shí)間的格式化方法。datetime庫概述datetime庫可以從系統(tǒng)中獲得時(shí)間,并以用戶選擇的格式輸出 datetime庫以格林威治時(shí)間為基礎(chǔ),每天由3600*24秒精準(zhǔn)定義datetime庫以類的方式提供多種日期和時(shí)間1. datetime.date:日期表示類,坑人表示年、月、日等。2. datetime.time:時(shí)間表示類,可表示小時(shí)、分鐘、秒、毫秒等。3. datetime.datetime:日期和時(shí)間表示類,功能覆蓋date和time類。4. datetime.timedelta:與時(shí)間間隔有關(guān)的類。5. datetime.tzinfo:與時(shí)區(qū)有關(guān)的信息表示類。datetime庫解析(datetime類) datetime.datetime類的使用方式是首先創(chuàng)建一個(gè)datetime對(duì)象,然后通過對(duì)象的方法和屬性顯示時(shí)間創(chuàng)建datetime對(duì)象的3種方法:1. datetime.now():返回一個(gè)datetime類型,表示當(dāng)前日期和時(shí)間,精確到毫秒from datetime import datetimenow=datetime.now()nowdatetime.datetime(2018, 5, 13, 16, 49, 38, 627464)2. datetime.utcnow():返回一個(gè)datetime類型,表示當(dāng)前日期和時(shí)間的UTC(世界標(biāo)準(zhǔn)時(shí)間)表示,精確到毫秒from datetime import datetimeutcnow=datetime.now()utcnowdatetime.datetime(2018, 5, 13, 8, 53, 59, 788612)3. 直接使用datetime()構(gòu)造一個(gè)日期和時(shí)間對(duì)象:datetime(Y,M,D,hour=0,minute=0,second=0,microsecond=0)some=datetime(2018,5,13,17,0,0,0)somedatetime.datetime(2018, 5, 13, 17, 0)-創(chuàng)建datetime對(duì)象后,可利用該對(duì)象的屬性顯示時(shí)間(以上述“some”為例) datetime類的常用屬性屬性描述some.min固定返回datetime的最小時(shí)間對(duì)象,datetime(1,1,1,0,0)some.max固定返回datetime的最大時(shí)間對(duì)象,datetime(9999,12,31,23,59,59,999999)some.year返回some包含的年份some.month返回some包含的月份some.day返回some包含的日期some.hour返回some包含的小時(shí)some.minute返回some包含的分鐘some.second返回some包含的秒鐘some.microsecond返回some包含的毫秒 datetime類的常用時(shí)間格式化方法屬性描述some.isofomat()采用ISO8601標(biāo)準(zhǔn)顯示時(shí)間some.isoweekday()根據(jù)日期計(jì)算星期some.strftime()根據(jù)格式化字符串format進(jìn)行格式顯示的方法 strftime()方法用于輸出特定格式時(shí)間格式化字符串對(duì)象取值范圍%Y年00019999%m月112%B月名JanuaryDecember%b月名縮寫JanDec%d日期0131%A星期MondaySunday%a星期縮寫MonSum%H小時(shí)(24h制)0023%I小時(shí)(12h制)0112%p上、下午AM/PM%M分鐘0059%S秒0059some=datetime(2018,5,13,17,0,0,0)some.strftime(%Y年%m月%d日,%H時(shí)%M分%S秒)2018年05月13日,17時(shí)00分00秒print(今天是0:%Y年0:%m月0:%d日.format(some)今天是2018年05月13日5.5 代碼復(fù)用和模塊化設(shè)計(jì) 當(dāng)代編程語言從代碼層面采用函數(shù)和對(duì)象兩種抽象方式,分別對(duì)應(yīng)面向過程和面向?qū)ο髢煞N編程思想 函數(shù)是程序的一種基本抽象方式,它將一系列代碼組織起來通過命名提供其他程序使用,任何其他代碼只有輸入?yún)?shù)即可調(diào)用函數(shù),更新函數(shù)功能時(shí),所有被調(diào)用處的功能都被更新。 對(duì)象是程序的一中高級(jí)抽象方式,它將程序代碼組織為更高級(jí)的類。對(duì)象包括表征對(duì)象特征的屬性和代表對(duì)象操作的方法。 模塊化設(shè)計(jì)值通過函數(shù)或?qū)ο蟮姆庋b功能將程序劃分成主程序、子程序和子程序間關(guān)系的表達(dá)。 模塊化設(shè)計(jì)的兩個(gè)基本要求:1. 緊耦合:盡可能合理劃分功能塊,功能塊內(nèi)部耦合緊密2. 松耦合:模塊間關(guān)系盡可能簡(jiǎn)單,功能塊之間耦合度低5.6 函數(shù)的遞歸遞歸的定義:函數(shù)定義中調(diào)用函數(shù)自身的方式稱為遞歸 數(shù)學(xué)經(jīng)典遞歸案例階乘n!=n(n-1)(n-2).(1)n!=1 (n=0)n!=n(n-1)! (otherwise) 遞歸的兩個(gè)關(guān)鍵特征1. 存在一個(gè)或多個(gè)基例,基例不需要再次遞歸,是確定的表達(dá)式2. 所有遞歸鏈要以一個(gè)或多個(gè)基例結(jié)尾遞歸的使用方法def fact(n): if n=0: return 1 else: return n*fact(n-1)num=eval(input(請(qǐng)輸入一個(gè)整數(shù):)print(fact(abs(int(num) 使用遞歸一定要注意基例的構(gòu)建,否則遞歸無法返回5.7 科赫曲線繪制科赫曲線屬于分形幾何分支,它的繪制過程體現(xiàn)了遞歸思想from turtle import *def koch(size,n): if n=0: fd(size) else: for angle in 0,60,-120,60: left(angle) koch(size/3,n-1) # 遞歸def main(size,level): setup(600,600) # 設(shè)置主窗體大小 speed(0) # 設(shè)置畫筆速度,(110) hideturtle() # 隱藏turtle箭頭 penup() goto(-150,50) pendown() pensize(1) # 設(shè)置畫筆尺寸 koch(size,level) right(120) koch(size,level) right(120) koch(size,level)main(300,3)5.8 Python內(nèi)置函數(shù)Python提供68個(gè)內(nèi)置函數(shù) abs() all() any() asci() bin() bool() chr() complex() dict() divmod() eval() float() hash() hex() id() input() int() len() list() max() min() oct() open() ord() pow() print() range() reversed() round() set() sorted() str() tuple() type() zip() bytes() delattr() bytearray() callable() classmethod() compile() dir() exec() enumerate() filter() format() frozenset() getattr() globals() hasattr() help() isinstance() issubclass() iter() locals() map() memoryview() next() object() properyty() repr() setattr() slice() staticmethod() sum() super() vars() _import()_第6章 組合數(shù)據(jù)類型6.1 組合數(shù)據(jù)類型概述組合數(shù)據(jù)類型為多個(gè)類型或不同類型數(shù)據(jù)提供單一表示,使數(shù)據(jù)操作更有序、更容易。組合數(shù)據(jù)類型分為序列類型、集合類型和映射類型3類。序列類型序列類型是一維元素向量,元素間存在先后關(guān)系,通過序號(hào)訪問,元素之間不排他。1. 字符串(str)可以看做是單一字符的有序組合,屬于序列類型 字符串被看做基本數(shù)據(jù)類型2. 元組(tuple)是包含零個(gè)或多個(gè)數(shù)據(jù)項(xiàng)的不可變序列類型 一個(gè)元組可作另一個(gè)元組的元素,可采用多級(jí)索引獲取信息X=(a,b,c) #等同 X=a,b,cY=(1,2,3,X)Y32 #多級(jí)索引c Python中元組采用逗

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論