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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論