《Python程序設(shè)計基礎(chǔ)》-課件 項目五 Python 流程控制_第1頁
《Python程序設(shè)計基礎(chǔ)》-課件 項目五 Python 流程控制_第2頁
《Python程序設(shè)計基礎(chǔ)》-課件 項目五 Python 流程控制_第3頁
《Python程序設(shè)計基礎(chǔ)》-課件 項目五 Python 流程控制_第4頁
《Python程序設(shè)計基礎(chǔ)》-課件 項目五 Python 流程控制_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

任務(wù)1使用if...else語句實現(xiàn)模擬用戶登錄01任務(wù)2使用while循環(huán)語句實現(xiàn)數(shù)值的累加02任務(wù)3使用for循環(huán)語句實現(xiàn)列表的生成03184任務(wù)1

使用if...else語句實現(xiàn)模擬用戶登錄1851.?熟悉if...else語句的結(jié)構(gòu)與執(zhí)行流程。2.?了解pass語句、assert語句、break語句及continue語句的作用。3.?能使用if...else語句實現(xiàn)模擬用戶登錄。任務(wù)目標(biāo)186一、if...else語句在Python中,通常使用if、elif和else條件語句實現(xiàn)選擇(分支)結(jié)構(gòu)的基本功能。1.?單分支結(jié)構(gòu)if語句單分支結(jié)構(gòu)的語法格式如下。if(條件表達(dá)式):語句/語句塊相關(guān)知識187其中,條件表達(dá)式可以是關(guān)系表達(dá)式、邏輯表達(dá)式、算術(shù)表達(dá)式等,語句/語句塊可以是單個語句,也可以是多個語句。多個語句的縮進(jìn)必須一致。當(dāng)條件表達(dá)式的值為真(True)時,執(zhí)行if后面的語句塊,否則不做任何操作且控制將轉(zhuǎn)到if語句的結(jié)束點(diǎn)。條件表達(dá)式最后被評價為布爾值True(真)或False(假)。如果表達(dá)式的結(jié)果為數(shù)字類型、空字符串、空元組、空列表、空字典,其布爾值為False(假),否則其布爾值為True(真)。1882.?雙分支結(jié)構(gòu)if語句雙分支結(jié)構(gòu)的語法格式如下。if(條件表達(dá)式):語句/語句塊1else:語句/語句塊2當(dāng)條件表達(dá)式的值為真時,執(zhí)行if后面的語句/語句塊1,否則執(zhí)行else后面的語句/語句塊2。1893.?多分支結(jié)構(gòu)if語句多分支結(jié)構(gòu)的語法格式如下。if(條件表達(dá)式1):語句/語句塊1elif(條件表達(dá)式2):語句/語句塊2...elif(條件表達(dá)式n):語句/語句塊nelse:語句/語句塊n+1190該語句的作用是根據(jù)不同條件表達(dá)式的值確定執(zhí)行哪個語句/語句塊。注意:(1)if、elif和else后面的代碼塊一定要縮進(jìn),而且縮進(jìn)量一定要大于if、elif和else本身,從編程習(xí)慣的角度,建議縮進(jìn)4個空格。(2)一個代碼塊的所有語句都要縮進(jìn),而且縮進(jìn)量必須相同。如果某個語句忘記縮進(jìn)了或者縮進(jìn)量不同,Python解釋器并不一定會報錯,但是程序的運(yùn)行邏輯往往會有問題。(3)不需要使用代碼塊的地方一定不要縮進(jìn),一旦縮進(jìn)就會產(chǎn)生一個代碼塊。191二、pass語句及其作用在實際開發(fā)中,有時需要先搭建程序的整體邏輯結(jié)構(gòu),暫時不去實現(xiàn)某些細(xì)節(jié),通常在這些地方加一些注釋,方便以后再添加代碼,例如以下程序。mark=int(input("請輸入您的分?jǐn)?shù):"))ifmark<60:print("不及格")elifmark>=60andmark<70:print("及格")elifmark>=70andmark<90:192#后續(xù)細(xì)分else:print("優(yōu)秀")當(dāng)分?jǐn)?shù)大于或等于70且小于90時,沒有使用print語句,而是使用了一個注釋,希望以后再處理分?jǐn)?shù)大于或等于70且小于90的情況。當(dāng)Python處理到該elif分支時,會跳過注釋,什么都不執(zhí)行。Python提供了一種更加專業(yè)的做法,就是空語句pass。pass是Python中的關(guān)鍵字,用來讓解釋器跳過此處,什么都不做。就像上面的情況,有時候程序需要占用一個位置,或者放一條語句,但又不希望這條語句做任何事情,此時就可以通過pass語句來實現(xiàn)。使用pass語句比使用注釋更加符合Python編程規(guī)范。193使用pass語句更改上面的程序,更改后的程序如下。mark=int(input("請輸入您的分?jǐn)?shù):"))ifmark<60:print("不及格")elifmark>=60andmark<70:print("及格")elifmark>=70andmark<90:passelse:print("優(yōu)秀")194程序運(yùn)行后,在終端輸入80并按“Enter”鍵。請輸入您的分?jǐn)?shù):80可以看到,程序雖然執(zhí)行到分?jǐn)?shù)段在70到90之間的elif語句,但是并沒有進(jìn)行任何操作。195三、assert語句及其作用Python中的assert語句又稱斷言語句,可以看作功能縮小版的if語句,用于判斷某個表達(dá)式的值,如果值為真,則程序可以繼續(xù)往下執(zhí)行;反之,Python解釋器會報AssertionError錯誤。assert語句的語法格式如下。assert表達(dá)式assert語句通常用在程序排錯的情景下,當(dāng)取值不滿足特定條件時,直接讓程序崩潰,從而發(fā)現(xiàn)錯誤與漏洞。196此外,assert語句通常用于檢查用戶的輸入是否符合規(guī)定,還經(jīng)常用作程序初期測試和調(diào)試過程中的輔助工具。其使用示例如下。mark=int(input())assert0<=mark<=100print("輸入的分?jǐn)?shù)為:",mark)197運(yùn)行程序后,在終端輸入相應(yīng)的數(shù)字并按“Enter”鍵。當(dāng)輸入的數(shù)字滿足assert表達(dá)式的條件(即輸入數(shù)字在0到100之間)時,程序輸出結(jié)果如下。50輸入的分?jǐn)?shù)為:50當(dāng)輸入的數(shù)字不滿足要求時,程序輸出結(jié)果如下。Traceback(mostrecentcalllast):File"d:\VSCode\code\5-1.py",line2,in<module>assert0<=mark<=100AssertionErrorPython解釋器報AssertionError錯誤,程序不再繼續(xù)運(yùn)行。198199四、break語句及其作用前面講過,在執(zhí)行while循環(huán)或者for循環(huán)時,只要循環(huán)條件滿足,程序?qū)⒁恢敝貜?fù)執(zhí)行循環(huán)體。循環(huán)體是程序中的一個代碼塊,它會被重復(fù)執(zhí)行,直到循環(huán)條件不再滿足。在循環(huán)結(jié)構(gòu)中,循環(huán)體是由一組語句組成的,這些語句會按照順序執(zhí)行,然后根據(jù)循環(huán)條件的真假決定是否再次執(zhí)行循環(huán)體。循環(huán)體是循環(huán)的核心部分,通過循環(huán)體的執(zhí)行,可以實現(xiàn)對同一段代碼的多次重復(fù)利用,從而簡化程序的編寫和維護(hù)。但在某些場景中,可能希望在循環(huán)結(jié)束前就強(qiáng)制結(jié)束循環(huán),Python提供了兩種強(qiáng)制離開當(dāng)前循環(huán)體的方法,具體如下。200●使用continue語句,可以跳過執(zhí)行本次循環(huán)體中剩余的代碼,轉(zhuǎn)而執(zhí)行下一次的循環(huán)?!袷褂胋reak語句,終止當(dāng)前循環(huán)。這里先講解break語句的用法。break語句可以立即終止當(dāng)前循環(huán)的執(zhí)行,跳出當(dāng)前所在的循環(huán)結(jié)構(gòu)。無論是while循環(huán)還是for循環(huán),只要執(zhí)行break語句,就會直接離開當(dāng)前正在執(zhí)行的循環(huán)體。break語句通常搭配while語句或for語句使用,使用方法非常簡單,在相應(yīng)的while語句或for語句中加入break指令即可。201五、continue語句及其作用和break語句相比,continue語句的跳轉(zhuǎn)范圍較小,它只會終止執(zhí)行本次循環(huán)中剩下的代碼,直接從下一次循環(huán)繼續(xù)執(zhí)行。continue語句的用法和break語句一樣,通常搭配while語句或for語句使用,在while或for語句中的相應(yīng)位置加入continue指令即可。從結(jié)果可以看出,當(dāng)遍歷str1字符串至逗號“,”時,就會進(jìn)入if判斷語句,執(zhí)行print語句和continue語句,此處的print語句起換行的作用,而continue語句則起跳過后面的程序,直接從下一次循環(huán)開始執(zhí)行的作用。任務(wù)2

使用while循環(huán)語句實現(xiàn)數(shù)值的累加2021.?熟悉while循環(huán)語句的結(jié)構(gòu)與執(zhí)行流程。2.?能使用while循環(huán)語句實現(xiàn)數(shù)值的累加。任務(wù)目標(biāo)203Python中的while循環(huán)語句(以下簡稱while語句)和if條件分支語句類似,即在條件(表達(dá)式)為真的情況下,會執(zhí)行相應(yīng)的代碼塊。不同之處在于,只要條件為真,while語句就會一直重復(fù)執(zhí)行相應(yīng)的代碼塊。while語句的語法格式如下。while條件表達(dá)式:代碼塊相關(guān)知識204while語句執(zhí)行的具體流程:首先判斷條件表達(dá)式的值,其值為真(True)時,執(zhí)行代碼塊中的語句,執(zhí)行完畢,再次判斷條件表達(dá)式的值是否為真,若仍為真,則重新執(zhí)行代碼塊……如此循環(huán),直到條件表達(dá)式的值為假(False),結(jié)束循環(huán)。while循環(huán)的執(zhí)行流程如圖所示。205while循環(huán)的執(zhí)行流程注意:在使用while循環(huán)時,務(wù)必確保循環(huán)條件最終為假,否則就會陷入無限循環(huán),程序?qū)⒂肋h(yuǎn)無法跳出循環(huán)結(jié)構(gòu)。此外,需要再次強(qiáng)調(diào),Python對于代碼縮進(jìn)要求非常嚴(yán)格,所有位于while循環(huán)體內(nèi)的代碼必須采用相同的縮進(jìn)格式(通常為4個空格),否則Python解釋器會報出SyntaxError錯誤(語法錯誤)。除上面的用法之外,while循環(huán)還常用來遍歷列表、元組和字符串等可迭代對象,因為它們都支持通過索引獲取指定位置的元素。206任務(wù)3

使用for循環(huán)語句實現(xiàn)列表的生成2071.?熟悉for循環(huán)語句的結(jié)構(gòu)與執(zhí)行流程。2.?掌握列表生成式和列表生成器的概念與使用方法。3.?能使用for循環(huán)語句生成列表。任務(wù)目標(biāo)208一、for循環(huán)語句for循環(huán)語句(以下簡稱for語句)用于遍歷可迭代對象中的元素,并對對象中的每個元素執(zhí)行一次相關(guān)的嵌入語句。當(dāng)集合中的所有元素完成迭代后,控制傳遞給for循環(huán)之后的下一個語句。for語句的語法格式如下。for迭代變量in字符串|列表|元組|字典|集合:代碼塊其中,迭代變量用于存放從序列類型中讀取出來的元素,一般不會在循環(huán)中對迭代變量手動賦值;代碼塊是指具有相同縮進(jìn)格式的多行代碼。相關(guān)知識209for循環(huán)的執(zhí)行流程如圖所示。for語句用來遍歷字符串、列表、元組、字典、集合等可迭代對象,逐個獲取其中的元素。210for循環(huán)的執(zhí)行流程211二、列表生成式列表生成式是Python內(nèi)置的一種強(qiáng)大的生成列表的表達(dá)式。列表生成式的語法格式如下。listname=[f(var)forvariniterableifcondition]各參數(shù)的具體含義如下?!駆istname:創(chuàng)建的列表的名稱。●f(var):列表內(nèi)元素的表達(dá)式,通常是對原序列中的元素進(jìn)行某些操作的表達(dá)式?!駐ar:原序列中的元素。●iterable:原來的序列?!駃fcondition:條件語句,不需要時可以忽略。212三、列表生成器當(dāng)生成的列表元素特別多時,空間浪費(fèi)會很大,產(chǎn)生大量的元素占用空間。這種情況下,可以使用列表生成器生成列表。使用列表生成器時,列表元素不需要一下子全部生成,而是按照某種算法逐步推算出來,通過在程序循環(huán)的過程中不斷地推算出后續(xù)的元素,就不必創(chuàng)建完整的列表。在Python中這種一邊循環(huán)一邊計算的機(jī)制,稱為生成器(也稱惰性運(yùn)算)。列表生成器的語法格式如下。listname=(f(var)forvariniterableifcondition)各部分的含義如下。●listname:創(chuàng)建的列表的名稱。●f(var):列表內(nèi)元素的表達(dá)式,通常是對原序列中的元素進(jìn)行某些操作的表達(dá)式?!駐ar:原序列中的元素?!駃terable:原來的序列?!駃fcondition:條件語句,不需要時可以忽略。213使用列表生成器,實現(xiàn)代碼如下。a=(xforxinrange(5))print(type(a))print(a)程序運(yùn)行結(jié)果如下。<class'generator'><generatorobject<genexpr>at0x00000190A182BEB0>214可以看到,a=(xforxinrange(5))這行代碼使用生成器表達(dá)式創(chuàng)建了一個生成器對象a,

溫馨提示

  • 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

提交評論