版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Python基礎學習筆記基于Python語言程序設計基礎(第2版)第一部分初識Python語言第1章程序設計基本方法1.1計算機的概念?計算機是根據指令操作數據的設備,具備功能性和可編程性兩個基本特性。?計算機技術發(fā)展階段:1.第一階段:1946-1981 年,計算機系統結構階段”。計算機網絡和視窗階段”。復雜信息系統階段”。2. 第二 階段:1982-2007 年,3. 第三階段:2008年至今,4. 第四階段:月20年后某個時期開始,人工智能階段”。1.2程序設計語言1.2.1程序設計語言概 述?機器語言:直接使用二進制代碼表達指令,可被計算機硬件直接識別和執(zhí)行。不同計 算機結構的機器指令
2、不同。?匯編語言:使用助記符對應機器語言中的指令,可直接操作計算機硬件。不同計算機 結構的匯編指令不同。機器語言和匯編語言都直接操作計算機硬件并基于此設計,統稱低級語言”。?高級語言:用更接近自然語言的方式描述計算問題。代碼只與編程語言有關,與計算 機結構無關。122編譯和解釋高級語言按執(zhí)行方式可分為采用 編譯執(zhí)行的靜態(tài)語言和采用解釋執(zhí)行的腳本語言0?編譯是將源代碼轉換成目標代碼的過程?解釋是將源代碼逐條轉換成目標代碼同時逐條運行目標代碼的過程。1.2.3計算機編程? 我學習Python的原因:1. 通過編程實現自動化,提高效率。2. 通過編程了解一個新的廣闊世界。?學習一門編程語言(重點在于
3、練習)1. 掌握該語言的語法2. 結合問題設計程序結構3. 掌握解決問題的能力1.3Python語言概述1.3.1 Python 語言的發(fā)展Python語言是一個語法簡潔、跨平臺、可擴展的開源通用腳本語言。? Python語言誕生于1990年,創(chuàng)世人為Guido。?2000年10月,Python 2.0正式發(fā)布,2010年,Python 2.x系列發(fā)布最后一版(2.7 )o?2008年12月,Python 3.0正式發(fā)布,解釋器內部采用完全面向對象的方式實現,代價是3.x系列版本無法向下兼容2.x系列的既有語法。Python 2.x已經是遺產,Python 3.x是這個語言的現在和未來。1.3
4、.2編寫Hello程序print (Hello World )1.3.3 Python 語言的特點?語法簡潔 ?可跨平臺? 支持中文?強制可讀:?應用廣泛通過強制縮進體現語句間的邏輯關系提高了程序的可讀性?模式多樣:語法層面同時支持面向過程和面向對象兩種編程方式?粘性擴展:通過接口和函數集成其他語言編寫的代碼?開源理念?庫類豐富1.4 Python語言開發(fā)環(huán)境配置? Python解釋器? IDLE開發(fā)環(huán)境? 交互式啟動?文件式啟動? Python語言集成開發(fā)環(huán)境PyCharm1.5程序的基本編寫方法1.5.1 IPO程序編寫方法 每個程序都有統一的運算模式:輸入數據、處理數據和輸出數據。這種樸
5、素的運算模式形 成了基本的程序編寫方法:IPO (lnput,ProcessQutput)方法。IPO不僅是程序設計的基本方法,也是描述計算冋題的方式1.5.2理解問題的計算部分?使用計算機解決問題的6個步驟:1. 分析問題2. 劃分邊界3. 設計算法4. 編寫程序5. 調試測試6. 升級維護第2章Python程序解析2.1 Python程序語法元素分析Python程序包括格式框架、注釋、變量、表達式、分支語句、循環(huán)語句、函數等語法元 素0程序的格式框架? Python語言采用嚴格的 縮進”來表明程序的格式框架,縮進表達了所屬關系?在代碼編寫中縮進可通過Tab鍵實現,也可用多個空格實現,建議采
6、用4個空格方式書寫代碼注釋?注釋是輔助性文字,不被執(zhí)行 ?單行注釋:以#開頭#這是注釋?多行注釋:以(3個單引號)開頭和結尾III這是注釋這也是注釋這還是注釋命名?命名是為變量關聯標識符的過程,用于確保程序元素的唯一 性?標識符由字母、數字、下劃線(和漢字)等字符及其組合構 成?標識符的首字符不能是數字,且中間不能出現空格 ?標識符對大小寫敏感保留字?保留字(Keyword )也被稱為關鍵字,是被編程語言內部定義并保留使用的標識符? Python的標準庫提供了一個keyword模塊,可以輸出當前版本的所有關鍵字: import keyword ls=keyword.kwlist Isle n(
7、ls) 33Python 3有33個保留字1.True2.False3.None4.and5.as6.assert7.break8.class9.con ti nue10. def11. del12. elif13. else14. exce pt15. fin ally16. for17. from18. global19. if20. im port21. in22. is23. lambda24. nonlocal25. not26. or27. p ass28. raise29. return30. try31. while32. with33. yield字符串?字符串(string
8、)類型在程序中表示文本?字符串是字符的序列,可以按照單個字符或字符片段進行索 引?字符串包括兩種序號體系:正向 遞增序號、反向遞減序號?正向遞增序號:0L-1 ?反向遞減序號:丄-1 ?區(qū)間訪問方式:N : M(不包含M),可以混合使用正向 遞增序號和反向遞減序 號?字符串比較本質上是字符串對應 Unicode編碼的比較賦值語句? Python語言中,“表示賦值”將右側的計算結果賦給左側變量同步賦值語句:可同時給多個變量賦值,=v表達式1,分支語句?分支語句的作用是根據判斷條件選擇程 序執(zhí)行路徑if:elifv 條件 2:else :循環(huán)語句?循環(huán)語句的作用是根據判斷條件確定一段程序是否再執(zhí)行
9、一次或多次while (): for i in range():input()函數?使用input()函數從控制臺獲得用戶輸入? input()函數以字符串類型返回結果 =input(提示性文字)i np ut(請輸入:)eval()函數eval(v字符串)函數的作用是間輸入的字符串變成Python語句并執(zhí)行x= eval (input(請輸入:)Python語法允許在表達式內部標記之間增加空格,適當增加空格有助于提高代碼可讀 性。但應注意,不能改變與縮進相關的空格數量、不能再變量名等命名中間增加空格print()函數? prin t()函數可以輸出字符信息,也可以用字符的形式輸出變量?輸出字
10、符信息時,可以直接將待輸出內容傳遞給printO函數?輸出變量值時,print()函數用槽格式和 過format()方法將變量和字符串結合到一起輸 出函數?函數可以理解為對一組表達特定功能表達式的封裝,將特定功能代碼編寫在一個函數 里,使程序模塊化更好,便于閱讀和復 用?可通過保留字def自定義函數2.2對象(庫)的調用? va.vb()表示調用一個對象va的方法vb(),或調用一個函數庫va中的函數vb()面向對象編程是一種基于對象的編程范式。對象是事物的一種抽象,是一個實體,包含屬 性和方法兩部分。屬性是對象中的變量,方法是對象能完成的操作。?通過保留字imp Ort引用函數庫1. imp
11、ort 庫名:程序調用庫中所有函數,使用庫中函數格式如下()import turtle turtle.fd( 100) #控制畫筆向當前行 進方向前進1002. from import :from 庫名 import 函數名,函數名,函數名 from 庫名 import *,“ *是通配符,表示所有函數?調用庫中函數不再需要使用庫名,格式如下函數名 ( 函數參數)from turtleimport * fd( 100)2.3 turtle庫語法元素分 析tuetle庫是一個圖形繪制函數圖繪圖坐標體系? tuetle庫繪制圖形的基本框架是一個海龜在坐標系中爬行(前進、后退、左轉、右 轉),其軌跡
12、形成了繪制圖形。?初始位置位于坐 標(0,0),行進方向為水平右方。?使用turtle.setup()函數設置主窗體的大小和位置。turtle.set up( width,height,startx,stary)? width,height分別表示窗口寬度和高度,值是整數表示像素值,值時小數表示與屏幕的比例? startx,stary分別表示窗口左側和頂部與屏幕左側和頂部的像素距離,如果值是none,窗口位于屏幕水平/垂直中央turtle .setup ( 0.8 ,0 .8 )畫筆控制函數?turtle.penupO :抬起畫筆,之后移動畫筆不繪制形狀別名:turtle.pd()、turtl
13、e.down()? turtle .pen size(width):設置畫筆寬度,width無參數或為No ne時返回當前畫筆寬度 別名:turtle.width()無參數輸入時返回當前畫筆顏色? turtle.pencolor():設置畫筆顏色,(colorstring)參數表示顏色的字符串;(r,g,b)參數表示顏色對應的RGB值顏色顏色字符串GRB十六進制黑色black0,0,0#FFFFFF白色white255,255,255#000000灰色grey190,190,190#BEBEBE形狀繪制函數? turtle.fd(distanee):控制畫筆向當前行進方向前進distanee,
14、值為負數表示向相反方向前進另y名:turtle.forward(distanee)? turtle.seth(to_angle):控制畫筆繪制方向,(to_angle )參數是絕對方向角度值(turtle庫的坐標體系以正東方向為絕對0度、正北方向為絕對90度)? turtle.circle(radius,exte nt=None) radius值為正時,半徑在畫筆左側, extent為正時,畫筆逆時針前進, 數或參數為None時,繪制整圓。:根據半徑radius繪制extent角度的弧形值為負時,半徑在畫筆右側;extent為負時,畫筆順時針倒退,extent不設置參第二部分深入Python語
15、言第3章基本數據類型3.1數字類型?Python語言提供整數、浮點數、復數 3種數字類型整數類型?整數類型共有4種進制表示:十進制、二進制、八進制和十六進 制?默認情況整數采用十進制,其他進制需要增加引導符號進制種類引導符號描述十進制無默認情況二進制0b 或 0B由字符0和1組成八進制0o 或 0O由字符0到7組成十六進制0x 或 0X由字符0到9、a到f、A到F組成浮點數類型?浮點數類型與數學中實數的概念一致,表示帶有小數的數值? Python語言要求所有浮點數必須帶有小數部分(可以是0),區(qū)分浮點數和 證書類型?浮點數有2中表示方法:十進制表示和科學計數法表示科學計數法使用字母e或E作為幕
16、的符號,以10為基數,含義如下:e=a*10bA2?由于計算機內部采用二進制運算,浮點數進行超過15位數字計算會產生誤差使用整數表達浮點數的方法是高精確度運算的基本方法之一。?對于高精度科學計算外的絕大部分運算而言,浮點數類型已足夠可靠,一般認為浮點 數類型沒有范圍限制,運算結果準 確復數類型?復數類型表示數學中的復 數 復數可以看作是二兀有序 實數對(a,b),表示為a+bj,其中a是實數部分,簡稱實部,b是 虛數部分,簡稱虛部。? Python語言中,復數的虛部通過后綴j或J表示1.23e-4 +5.67e +89j?復數類型中實數部分和虛數部分的數值都是浮點數類型,對于實數z,可用乙re
17、al和乙imag分別獲得它的實部和虛部(1 .23e-4 +5.67e +89j ) .real (1 .23e-4 +5.67e +89j ) .imag3.2數字類型的操作? Python解釋器為數字類型提供數值運算操作符、數值運算函數、類型轉換函數等操作 方法內置的數值運算操作符(共9個)函數描述x+yx與y之和x-yx與y之差x*yx與y之積x/yx與y之商x/yx與y之整數商,即不大于x與y之商的最大整數x%yx與y之商的余數,也稱 為模運算-xx的負值+xx本身x*yx的y次幕,即xAy?操作符運算的結果可能會改變數字類型,3種數字類型之間存在一種逐漸擴展的關 系:整數7浮點數7復
18、數?上述9個二元數學操作符都有與之 對應的增強賦值操作符x+=y 等價于 x=x+y?模運算(%)在編程中主要應用于具有周期規(guī)律的場 景內置的數值運算函數(共6 個)abs(x)divmod(x,y)po w(x,y,z)(x*y)%z,表示該參數可省 略x的絕對值 (x/y,x%y),輸出為二元組形式(也稱為元組類型)對x四舍五入,保留ndigits位小數,round(x)返回四舍五入的整數 值max(x1,x2, ,xn:x1,x2,x的最大值,n沒有限定min (x1,x2,xn:x1,x2,x的最小值,n沒有限定內置的數字 類型轉換函數(共3個)函數描述in t(x)將x轉換為整數,x
19、可以是浮點數或字符串roun d(x, ndigits)float(x)將x轉換為浮點數,x可以是整數或字符串i 生成一個復數,實部為re,虛部為im,re可以是整數、浮點數或字 complex(re,im)符串,im可以是整數或浮點數但不能為字符串? int()函數將浮點數類型轉換為整數時,小數部分會直接被舍 棄?復數不能直接轉換為其他數字類型,可通過.real和.imag將復數的實部和虛部分別轉 換3.3字符串類型及其操作字符串類型的表示?字符串是字符的序列表示?單引號字符串:單引號表示可以使用雙引號作為字符串的一部分?雙引號字符串:雙引號表示可以使用單引號作為字符串的一部分? 三引號字符
20、串:三引號表示可以使用雙引號、單引號作為字符串的一部分也可以換行? Python字符串提供區(qū)間訪問方式,采用N:M格式。表示從字符串中從 N到M (不包 含M)的字符串,可以混合使用正向 遞增序號和反向遞減序 號?反斜杠字符()在字符串中表示 轉義1. n表示換行2. 表示反斜杠3. 表示單引號4. 表示雙引號5. t表示制表符(Tab)基本的字符串操作符(共 5 個)操作符描述x+y連接兩個字符串x與yx*n 或 n*x復制n次字符串xx in s如果x是s的子字符串,返回Ture,否則返回False方法描述stri索引,返回第i個字符strN:M切片,返回索引第N到第M個字符內置的字符串處
21、理函數(共6個)函數len( X)描述返回字符串x的長度,也可返回其他組合數據類型元素個 數str(x) 返回任意類型X所對應的字符串形 式chr(x)返回Unicode編碼x對應的單字符ord(x)返回單字符表示的Uni code編碼hex(x)返回整數x對應十六進制數的小寫形式字符 串oct(x)返回整數x對應八進制數的小寫形式字符串內置的字符串 處理方法(共43個,常用16個)?在Python解釋器內部,所有數據類型都采用面向對象的方式實現,封裝為一個類?字符串是一個類,具有類似va.vb()形式的字符串處理函數,稱為方法str.lower()返回字符串str的副本,全部字符小寫str.
22、u pp er()返回字符串str的副本,全部字符大寫str.islower()當str所有字符都是小寫 時,返回Ture,否則返回Falsestr.is prin table()當str所有字符都是可打印的,返回Ture,否則返回Falsestr.is nu mericO當str所有字符都是數字 時,返回Ture,否則返回Falsestr.iss pace()當str所有字符都是空格,返回Ture,否則返回Flasestr.e ndswith(suffix,start,e nd)strstart:end以 suffix 結尾返回 Ture,否則返回 Flasestr.srartswith(
23、prefix,start,e nd)strstart:end以 prefix 開始返回 Ture,否則返回 Flasestr.s plit(se p=Non e,maxs plit=-1)返回一個列表,由str根據sep被分割的部分構成str.co un t(sub,start,e nd返回strstart:end中sub子串出現的次數str.re place(old, new,co un t)返回字符串str的副本,所有old子串被替換為new,如果count給出,則前count次old出現被替換str.ce nter(width,fillchar)字符串居中函數方法描述str.stri p
24、(chars)返回字符串 列出的字符str的副本,在其左 側和右側去掉chars中str.zfill(width)返回字符串側添加0str副本,長度為width。不足部分在其左str.formatO返回字符串str的一種排版格式str.joi n(iterable)返回一個新字符串,由組合數據類型iterable變量的每 個元素組成,元素間用str分隔3.4字符串類型的格式化?字符串通過format()方法進行格式化處理字符串格式化用于解決字符串和 變量同時輸出時的格式安 排format。方法的基本使用?字符串format()方法的基本使用格式: 字模板符串.format(逗號分隔的參數)?模
25、板字符串由一系列槽 組成,用來控制修改字符串中嵌入值出現的位置(槽用表示,如果中沒有序號,則按照出現順序替換)?如需輸入,采用表示; 表示圓周率12 是0 .format(無理數,3.1415926,format。方法的格式控制號,? format()方法模板字符串的槽除了包括參數序號,還可包括格式控制信息。槽內部樣式:參數序號 : 格式控制標記?格式控制標記用于控制參數顯示時的格式填充對齊.精度類型引 導 符 號用于填 充的單 個字符左對 齊、右對 齊、A居中 對齊槽的 設定 輸出 寬度數字的千 位分隔符 適用于整 數和浮點 數浮點數小數 部分的精度 或字符串的 最大輸出長 度整數類型b,c
26、,d,o,x,X ;浮點 數類型e,E,f,%6.填充 指寬度內除了參數外的字符采用什么方式表示,默認為空對齊指參數在寬度內輸出時的對齊方 式寬度指當前槽的設定輸出字符寬度,若實際參數長度比設定值大,則使用參數實際 長度,用于顯示數字類型的千分位分隔 符.精度對于浮點數,表示小數部分輸出的有效位數;對于字符串,表示輸出的最大長類型 表示輸出整數好浮點數類型的格式規(guī)劃。 對于整數類型,1.b :整數的二進制;2.c :整數 對應的Unicode字符;3.d:整數的十進制;4.o:整數的八進制5.x :整數的小寫十六進制X :整數的大寫十六進制 對于浮點數類型,7.e :浮點數對應的小寫字母e的指
27、數形式8.E:浮點數對應的大寫字母E的指數形式9. f:浮點數的標準浮點形式 10. % :浮點數的百分形式第4章程序的控制結構4.1程序的基本結構程序流程I圖?起止框表示一個程序的開始和結束 ?判斷框判斷一個條件是否成立,并根據判斷 結果不同選擇不同的執(zhí)行路 徑?處理框表示一組處理過程 ?輸入/輸出框表示數據輸入或結果輸 出?注釋框增加程序的解釋 ?流向線以帶箭頭的直線或曲線形式指示程序的執(zhí)行路 徑?連接點將多個流程圖連接到一起程序的基本結構?程序有3種基本結構組成:順序結構、分支結構和循環(huán)結 構?順序結構:程序按照線性順序依次執(zhí)行?分支結構:程序根據條件判斷結果而選擇不同向前執(zhí)行路徑的一種
28、運行方式(分支結 構包括單分支結構和二分支結構;p97)?循環(huán)結構:程序根據條件判斷結果向后反復執(zhí)行(根據觸發(fā)條件不同,循環(huán)結構包括 條件循環(huán)和遍歷循環(huán))4.2程序的分支結構單分支機構:if語句if語句語法格式:if :?語句塊是if條件滿足后執(zhí)行的一個或多個語句序列 ?語句塊中語句通過與if所在行形成縮進表達包含關系? if語句首先評估條件的結果值,若為Ture則執(zhí)行語句塊中的語句序列;若為 False則跳過語句塊中的語句? if語句中條件部分可以使用任何能夠產生Ture或False的語句或函數形成判斷條件最常見的方式是采用關系操作符關系操作符數學符號操作符含義小于=大于?Python使用=
29、表示賦值語句,使用=表示等于分支結構:if-else語句if-else語句語法格式:if :else :?二分支語句用于區(qū)分條件的兩種可 能? if條件滿足時執(zhí)行語句塊1? if條件不滿足時執(zhí)行語句塊2二分支結構的簡潔表達(適合通過判斷返回特定值 ) if else ?表達式1/2 一般是數字類型或字符串類型的一個值多分支結構:if-elif-else 語句if-elif-else語句語法格式:if :語句塊1elif :語句塊2else:語句塊N? Python依次評估尋找第一個結果為Ture的條件,執(zhí)行該條件下的語句并跳過整個if- elif-else結構,執(zhí)行后面的語句?如果沒有任何條件
30、成立,執(zhí)行else下面的語句塊 ? else語句是可選的4.3程序的循環(huán)結構遍歷循環(huán):for語句for語句語法格式for 循環(huán)變量 in 遍歷結構: 語句塊?遍歷循環(huán)可以理解為從遍歷結構中中逐一提取元素,放在循環(huán)變量中,對于所提取的 每個元素執(zhí)行一次語句塊循環(huán)N次:for i in rang(N): 語句塊遍歷文件的每一行:for line in fi : 語句塊遍歷字符串sfor c in s:遍歷列表Isfor item in ls:遍歷循環(huán)的擴展模式for in :else:當for循環(huán)正常執(zhí)行后,程序會 繼續(xù)執(zhí)行else語句遍歷循環(huán):while語句while語句語法格式while :?
31、當條件判斷為Ture時,循環(huán)體重復執(zhí)行語句塊中的語句;當條件為 Flase時,循環(huán)終止,執(zhí)行與while同級別縮進的后續(xù)語句無限循環(huán)的擴展模式while :else :?當while循環(huán)正常執(zhí)行后,程序會繼續(xù)執(zhí)行else語句中的內容,else語句只在循環(huán)正常執(zhí)行后才執(zhí)行循環(huán)保留字:break和continue? break用來跳出最內層for或while循環(huán),脫離該循環(huán)后程序從循環(huán)代碼后繼續(xù)執(zhí)行? continue用來結束當前當次循環(huán),即跳出循環(huán)體中下面尚未執(zhí)行的語句,但不跳出當 前循環(huán)for s in BIT:for iin rang( 2):pri nt(s.ifs= Iend=)brea
32、kBBTT? break語句與continue語句的區(qū)別是,break語句結束整個循環(huán)過程,不再判斷執(zhí)行循 環(huán)的條件是否成立;continue語句只結束本次循環(huán),而不終止整個循環(huán)的執(zhí)行for循環(huán)和while循環(huán)中都有一個else擴展用法。else語句僅在循環(huán)正常遍歷了所有內容 或由于條件不成立而結束循環(huán)的條件下執(zhí)行。for s in PYTHON:if s = T:con ti nueprint (s,e nd=“) else :print (正常退岀“)PYHON正常退岀 for s in PYTHON:if s = T:breakelseprint(s,e nd=“)print(正常退岀“
33、)PY4.4 ran dom庫的使用random庫采用梅森旋轉算法生成偽隨機數序列,可用于除隨機性要求更高的加解密算法 外的大多數工程應用? Python內置的random庫主要用于產生各種分布的偽隨機數序 列? random庫提供9個常用函數函數描述seed(a=None)初始化隨機數種子,默 認值為當前系統時間ran dom()生成一個0.0,1.0之間的隨機小數ran di nt(a,b)生成一個a,b之間的整數getra ndbits(k)生成一個k比特長度的隨機整數randran ge(start,sto p,ste p)生成一個start,stop之間以step為步數的隨機整 數u
34、n iform(a,b)生成一個a,b之間的隨機小數choice(seq)從序列類型,例如列表中隨機返回一個元 素shuffle(seq)將序列類型中的元素隨機排列,返回打亂后的序 列samp le( pok,k)從pop類型中隨機選取k個元素,以列表類型返回?生成隨機數之前可通過seed()函數指定隨機數種子,隨機數種子一般是一個整數,只要種子相同,每次生成的隨機數序列也相同4.5程序的異常處理Python通過try、except等保留字提供異常處理功能異常處理:try-except 語句? Python使用try-except語句實現異常處理try :except :異常的高級用法try-
35、except語句可以支持多個except語句try :except 異常類型except :except :異常語句還可以與else和fin ally保留字配合使用try :except :else:fin ally:第5章函數和代碼復用5.1函數的基本使用函數的定義?函數是一段具有特定功能的、可重用的 語句組?使用函數主要有兩個目的:降低 編程難度和代碼重 用?Python使用def保留字定義一個函數def 函數名 ( 參數列表): 函數體return 返回值列表?函數名可以是任何有效的 Python標識符?參數列表是調用該函數是傳遞給它的值,可以有零個(保留圓括號)、一個或多個(用逗號分隔
36、)?函數體是函數每次被 調用是執(zhí)行的代碼?當需要返回值時使用保留字return和返回值劉表,否則函數可以沒有return語句,在函數體結束時將控制權返回給調用 者函數調用和執(zhí)行的一般形式函數名(v參數列表)函數的調用過程1. 調用程序在調用處暫停執(zhí) 行2.在調用時將實參復制給形參3.執(zhí)行函數體語句4.函數調用結束給出返回值,程序回到調用前的暫停處繼續(xù)執(zhí)行l(wèi)ambda 函數? lambda函數又稱匿名函數,將函數名作 為函數結果返 回函數名=lambda參數列表 : 表達式 lambda函數與正常函數一樣,等價于下面表達式:def 函數名 ( 參數列表):return 表達式? lambda函數
37、用于定義簡單的、能夠在一行內表示的函數,返回一個函數類型f= lambda q,w,e,r:q+w+e+r f( 1, 2, 3, 4) 10? lambda函數用于需要函數對象的場景5.2函數的參數傳遞 函數可定義可選參數,使用參數的位置或名稱傳遞參數值,根據函數中變量的不同作用域 有不同的函數返回值方式可選參數和可變數量參 數?函數定義時部分參數可直接為存在默認值的參數指定默認值,當函數被調用時如果沒 有傳入對應的參數值則使用函數定義時的的默認值替 代?默認參數必須指向不變對象?函數調用時需要按順序輸入參數,可選參數必須定義在非可選參數后dfe r(str, times =2):print
38、 (str* times ) r( T)TT r( T)?函數定義時可設計可變數量參數,通過在參數前加星號(*)實現?帶有星號的可變參數只能出現在參數列表最后,調用時這些參數被單指元組類型傳遞 到函數中def vfunc (a,*b)p ri nt(typ e(b)for n in b:a+=nreturn a vfunc( 1,2,3, 4, 5) 15 #1+2=3;3+3=6;6+4=10;10+5=15參數的位置和名稱傳遞?函數定義時實參默認采用按照位置順序的方式傳遞給函數,這種方式在參數很多的情 況下可讀性較差?Python提供了按照形參名稱輸入實參的方式,調用函數時指定參數名稱,參
39、數之間的順序可任意調整函數的返回值? return語句用來退出函數并將程序返回到函數被調用的位置繼續(xù)執(zhí)行? return語句可同時將0個、1個或多個函數運算后的 結果返回給函數被調用的位 置?函數可以沒有return,此時函數不返回值?函數也可以用return返回多個值,多個值以元組類型保存def func (a,b):return b,a s=func( t , 2) prin t(s,t yp e(s)(2, t) 5.4 datetime 庫的使用Python時間處理的標準函數庫datetime提供里一批顯示日期和時間的格式化方法。datetime 庫概述datetime庫可以從系統中獲
40、得時間,并以用戶選擇的格式輸出? datetime庫以格林威治時間為基礎,每天由 3600*24秒精準定義1.2.3.4.5.datetime庫以類的方式提供多種日期和時間datetime.date :日期表示類,坑人表示年、月、日等。datetime.time :時間表示類,可表示小時、分鐘、秒、毫秒等 。datetime.datetime :日期和時間表示類,功能覆蓋 date和time類。datetime.timedelta :與時間間隔有關的類。datetime.tzinfo :與時區(qū)有關的信息表示類。datetime 庫解析(datetime 類)? datetime.datetim
41、e類的使用方式是首先創(chuàng)建一個 datetime對象,然后通過對象的方法和屬性顯示時間創(chuàng)建datetime對象的3種方法:1. datetime.now():返回一個datetime類型,表示當前日期和時間,精確到毫 秒from datetime import datetimeno w=datetime .no w()nowdatetime.datetime( 2018 ,5,13, 16, 49, 38, 627464 )2. datetime.utcnow():返回一個datetime類型,表示當前日期和時間的 UTC (世界標準 時間)表示,精確到毫秒 from datetime impo
42、rt datetimeutc no w=datetime .no w()utc nowdatetime.datetime( 2018 ,5,13, 8, 53, 59, 788612 )3.直接使用datetimeO構造一個日期和 時間對象:datetime(Y,M,D,hour=0,minu te=O,sec on d=0,microsec on d=0)some=datetime( 2018 , 5, 13, 17,0, 0, 0)somedatetime.datetime( 2018 , 5,13, 17, 0)-創(chuàng)建datetime對象后,可利用該對象的屬性顯示時間(以上述“ some
43、為例)? datetime類的常用屬 性屬性描述some.min固定返回datetime的最小時間對象,datetime(1,1,1,O,O)some.max固定返回datetime的最大時間對象,datetime(9999,12,31,23,59,59,999999)some.year返回some包含的年份some.m onth返回some包含的月份some.day返回some包含的日期some.hour返回some包含的小時some. minute返回some包含的分鐘屬性描述some.sec ond返回some包含的秒鐘some.microsecond返回some包含的毫秒? datet
44、ime類的常用時間格式化方法屬性描述some.isofomatO米用ISO8601標準顯示時間some.isoweekdayO根據日期計算星期some.strftimeO根據格式化字符串format進行格式顯示的方法? strftimeO方法用于輸出特定格式時間格式化字符串對象取值范圍%丫0001-9999%m%B%b格式化字符串對象取值范圍%d日期0131%A星期MondaySunday%a星期縮寫Mon-Sum%H小時(24h制)0023%I小時(12h制)01-12%p上、下午AM/PM%M分鐘00-59%S秒00-59some=datetime( 2018 , 5, 13, 17,0,
45、 0, 0)some.strftime(%Y 年 %mM %d 日,H時 嗆%S秒)2018 年05月13日,17時00分00秒print(今天是0:%Y年0:%m月0:%d日.format(some)今天是2018年05月13日5.5代碼復用和模塊化設計?當代編程語言從代碼層面采用函數和對象兩種抽象方式,分別對應面向過程和面向對 象兩種編程思想?函數是程序的一種基本抽象方式,它將一系列代碼組織起來通過命名提供其他程序使 用,任何其他代碼只有輸入參數即可調用函數,更新函數功能時,所有被調用處的功能都被更新。?對象是程序的一中高級抽象方式,它將程序代碼組織為更高級的類。對象包括表征對 象特征的屬
46、性和代表對象操作的方法。?模塊化設計值通過函數或對象的封裝功能將程序劃分成主程序、子程序和子程序間關 系的表達。?模塊化設計的兩個基本要求:1. 緊耦合:盡可能合理劃分功能塊,功能塊內部耦合緊密2. 松耦合:模塊間關系盡可能簡單,功能塊之間耦合度 低5.6函數的遞歸遞歸的定義:函數定義中調用函數自身的方式稱為遞歸?數學經典遞歸案例一一階乘n!=n(n-1)( n-2)n!=1 (n=0)n!=n(n-1)! ( otherwise )?遞歸的兩個關鍵特征1. 存在一個或多個基例,基例不需要再次 遞歸,是確定的表達 式2. 所有遞歸鏈要以一個或多個基例結尾遞歸的使用方法def fact (n):
47、if n= 0:returnelse :1returnn *fact (n-1 )n um=eval( inp ut(請輸入一個整數:)prin t(fact(abs(i nt(n um)使用遞歸一定要注意基例的構建,否則遞歸無法返回5.7科赫曲線繪制科赫曲線屬于分形幾何分支,它的繪制過程體現了遞歸思想from turtleimport *def koch (size,n):if n= 0:fd(size)else :for anglein 0, 60, -120 , 60:left(a ngle)koch(size/3,n -1 ) # 遞歸def main (size,level):set
48、up(600 , 600 ) #設置主窗體大小speed(0) #設置畫筆速度,(110)hideturtle()#隱藏turtle 箭頭penupOgoto( -150 , 50)pen dow nOpensize( 1) #設置畫筆尺寸koch(size,level)right( 120)koch(size,level)right( 120)koch(size,level)main( 300 , 3)5.8 Python內置函數Python提供68個內置函數? abs()? allO? any()? asci()? bin()? bool()? chr()? compi ex()? dic
49、t()? divmod()? eval()? float()? hash()? hex()? id()? input()?in t()? Ien()? Iist()? max()? min()? oct()? open()? ord()? pow()? print()? ran ge()?reversed。?roun d()? set()? sorted()? str()?tu ple()? typ e()? zip()? bytes()? delattr()? bytearrayO? callable()? classmethod()? com pile()? dir()? exec()? enu merateO? filter()? format()? froze nse
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國低軌互聯網星座行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國碳封存解決方案行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球高速木屑制粒機行業(yè)調研及趨勢分析報告
- 2025-2030全球家用吊扇燈行業(yè)調研及趨勢分析報告
- 2025年全球及中國非動力重力滾筒輸送機行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國超聲波封訂機行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球PTC熱敏電阻燒結爐行業(yè)調研及趨勢分析報告
- 2025-2030全球纖維蛋白密封劑行業(yè)調研及趨勢分析報告
- 2025-2030全球全向堆高AGV行業(yè)調研及趨勢分析報告
- 2025-2030全球天花板安裝防護罩行業(yè)調研及趨勢分析報告
- 糧油廠食品安全培訓
- 南京信息工程大學《教師領導力》2022-2023學年第一學期期末試卷
- 電力安全工作規(guī)程(完整版)
- 電力基本知識培訓課件
- 2024年湖南省公務員錄用考試《行測》試題及答案解析
- 借名買車的協議書范文范本
- 《2024 ESC血壓升高和高血壓管理指南》解讀
- 北京中考英語詞匯表(1600詞匯)
- 20世紀西方音樂智慧樹知到期末考試答案章節(jié)答案2024年北京大學
- 塑料 聚氨酯生產用聚醚多元醇 堿性物質含量的測定
- 運動技能學習與控制課件第十二章運動技能學習的反饋
評論
0/150
提交評論