《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目3、4 流程控制語句應(yīng)用、字符串_第1頁
《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目3、4 流程控制語句應(yīng)用、字符串_第2頁
《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目3、4 流程控制語句應(yīng)用、字符串_第3頁
《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目3、4 流程控制語句應(yīng)用、字符串_第4頁
《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目3、4 流程控制語句應(yīng)用、字符串_第5頁
已閱讀5頁,還剩222頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

項(xiàng)目3流程控制語句應(yīng)用理解Python程序控制執(zhí)行流程01掌握Python中if、if-else、if-elif-else語句的語法格式02掌握Python中if嵌套語句的語法格式03知識目標(biāo)掌握Python中while循環(huán)語句的語法格式04掌握Python中for循環(huán)語句的語法格式05掌握Python中循環(huán)嵌套語句的語法格式06掌握Python中break和continue跳轉(zhuǎn)語句的語法格式07能夠熟練使用選擇結(jié)構(gòu)語句01能夠熟練使用嵌套選擇結(jié)構(gòu)語句02能夠熟練使用循環(huán)結(jié)構(gòu)語句03能力目標(biāo)能夠熟練使用循環(huán)控制語句04能夠熟練使用循環(huán)嵌套語句05目錄快遞計(jì)費(fèi)任務(wù)1用戶登錄檢測任務(wù)2數(shù)據(jù)加密任務(wù)3猜價(jià)格贏折扣任務(wù)4任務(wù)提出01任務(wù)分析02知識準(zhǔn)備03任務(wù)1快遞計(jì)費(fèi)任務(wù)實(shí)現(xiàn)04任務(wù)總結(jié)05任務(wù)1打印樹形圖案任務(wù)提出Part.01任務(wù)提出編寫程序,計(jì)算快遞費(fèi)用。某快遞公司的快遞費(fèi)用計(jì)算方式如下:首重3公斤,未超過3公斤:同城10元,省內(nèi)地區(qū)12元,省外地區(qū)15元;超過三公斤,每公斤加價(jià),同城加價(jià)2元/公斤,省內(nèi)地區(qū)3元/公斤,省外地區(qū)5元/公斤。任務(wù)分析Part.02任務(wù)分析1.創(chuàng)建Python程序postmail.py。2.提示用戶輸入快遞的重量,提醒用戶重量的單位是公斤,并轉(zhuǎn)換為數(shù)字類型。3.提示用戶輸入快遞郵寄的目的地編碼,這里使用0表示同城、1表示省內(nèi)、2表示省外。4.根據(jù)用戶的輸入,按照計(jì)費(fèi)規(guī)則計(jì)算快遞費(fèi)用,輸出計(jì)算結(jié)果。5.運(yùn)行測試程序,檢驗(yàn)快遞費(fèi)用計(jì)算結(jié)果是否正確。本任務(wù)需要根據(jù)目的地區(qū)域和重量兩個(gè)不同條件,使用不同的規(guī)則來計(jì)算快遞費(fèi)用,因此需要使用分支結(jié)構(gòu),并通過if語句實(shí)現(xiàn)。具體的任務(wù)實(shí)施分析如下:知識準(zhǔn)備Part.03程序流程結(jié)構(gòu)01if語句02if嵌套語句03知識準(zhǔn)備3.1程序流程結(jié)構(gòu)程序流程結(jié)構(gòu)通常,程序流程控制分為3種:順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)。

選擇結(jié)構(gòu)是需要根據(jù)不同條件進(jìn)行判斷,然后執(zhí)行不同的操作。python提供了單分支(if語句),雙分支(if-else語句)和多分支(if-elif-else語句)3種形式的選擇結(jié)構(gòu)。程序流程結(jié)構(gòu)例3.1計(jì)算兩個(gè)整數(shù)的和,示例代碼如下:程序運(yùn)行結(jié)果單分支if語句01雙分支if-else語句02多分支if-elif-else語句033.2if語句單分支if語句單分支是最簡單的選擇結(jié)構(gòu),其邏輯上是先判斷條件,條件為真則執(zhí)行語句塊。if條件表達(dá)式:語句塊

if語句由關(guān)鍵字if、判斷條件和冒號組成,if語句和從屬于該語句的代碼段可組成選擇結(jié)構(gòu)。單分支if語句單分支if語句的執(zhí)行流程如右圖:注意:在Python中,當(dāng)表達(dá)式的值為非零的數(shù)或者非空的字符串時(shí),if語句也認(rèn)為是條件成立(即為真值)。使用if語句時(shí),如果只有一條語句,那么語句塊可以直接寫到冒號“:”的右側(cè)。但為了代碼可讀性不建議這么做。true條件表達(dá)式語句塊falseif語句的執(zhí)行流程首先判斷條件表達(dá)式,如果條件為真(true),則執(zhí)行if語句之后的語句塊;如果條件為假(false),則執(zhí)行if語句后面的語句。單分支if語句例3.2判斷給定整數(shù)是否為偶數(shù),示例代碼如下::程序運(yùn)行結(jié)果在程序開發(fā)中,不僅需要處理滿足條件的情況,也需要對不滿足條件的情況做特殊處理。因此,Python提供了可以同時(shí)處理滿足和不滿足條件的if-else語句。if條件表達(dá)式:語句塊1else:語句塊2雙分支if-else語句if-else語法格式如下:雙分支if-else語句雙分支if-else語句的執(zhí)行流程如下圖:if-else語句的執(zhí)行流程注意:在使用else語句時(shí),else一定不可以單獨(dú)使用,它必須和保留字if一起搭配使用。使用縮進(jìn)來劃分語句塊,相同縮進(jìn)數(shù)的語句在一起組成一個(gè)語句塊。條件表達(dá)式語句塊2語句塊1truefalse雙分支if-else語句例:判斷給定整數(shù)是偶數(shù)還是奇數(shù),示例代碼如下::程序運(yùn)行結(jié)果多分支結(jié)構(gòu)在開發(fā)程序時(shí)遇到多選一的情況,則可以使用if-elif-else語句。多分支語句執(zhí)行流程多分支if-elif語句的語法格式如下:if判斷條件1:語句塊1elif判斷條件2:語句塊2elif判斷條件3:語句塊3...else:語句塊n多分支if-elif語句的執(zhí)行流程如下圖:if-elif-else語句的執(zhí)行流程說明:關(guān)鍵字elif是elseif的縮寫;最后一個(gè)語句塊n前無須再判斷條件。多分支語句執(zhí)行流程多分支語句例:根據(jù)小明的考試成績顯示獲得的獎勵,規(guī)則是:如果成績小于60分,什么都不買;成績大于等于60分且小于90分,媽媽給他買本參考書;成績大于等于90分且小于100分

,媽媽給他買一部MP4;成績等于100分,爸爸給他買輛自行車。

示例代碼如下:程序運(yùn)行結(jié)果3.3if嵌套語句嵌套01If嵌套02嵌套嵌套:在基礎(chǔ)條件滿足的情況下,再在基礎(chǔ)條件底下增加額外的條件判斷。

假設(shè)機(jī)票原價(jià)是2000,根據(jù)用戶輸入的出行季節(jié)以及選擇的是頭等艙還是經(jīng)濟(jì)艙,折扣不同,5~10月為旺季,頭等艙打9折,經(jīng)濟(jì)艙打7.5折,其他時(shí)間為淡季,頭等艙打6折,經(jīng)濟(jì)艙打3折。訂票過程:有兩次判斷:一是對出行季節(jié)的判斷,一是對選擇艙位的判斷。需要用到嵌套if結(jié)構(gòu),即if語句的嵌套是指在if語句中又包含一個(gè)或多個(gè)if語句。if嵌套語句python中通過if嵌套,實(shí)現(xiàn)程序中條件語句的嵌套邏輯。if判斷條件1:#外層條件語句塊1if判斷條件2:#內(nèi)層條件語句塊2...python

中,if、if-else和if-elif-else之間可以相互嵌套。在開發(fā)程序時(shí),需要根據(jù)場景需要,選擇合適的嵌套方案。if嵌套語句嵌套if語句可以形成各種嵌套分支形式,下面是幾種常用的形式:if表達(dá)式1:

if表示式2:

語句塊1

else:

語句塊2形式一:在if語句中嵌套ifelse語句,形式如下:if表達(dá)式1:

if表示式2:

語句塊1else:

語句塊2形式二:在if-else語句的else中嵌套ifelse語句,形式如下:if嵌套語句嵌套if語句可以形成各種嵌套分支形式,下面是幾種常用的形式:形式三:在ifelse語句中嵌套ifelse語句,形式如下:注意:if嵌套語句,在相互嵌套時(shí),一定要嚴(yán)格遵守不同級別語句塊縮進(jìn)規(guī)范。if表示式1:

if表達(dá)式2:

語句塊1

else:

語句塊2

else:

if表達(dá)式3:

語句塊3

else:

語句塊4嵌套if語句的執(zhí)行流程:if嵌套的執(zhí)行流程if嵌套語句表達(dá)式1False表達(dá)式2語句塊2語句塊1TrueFalseif表達(dá)式1:

if表示式2:

語句塊1

else:

語句塊2形式一:在if語句中嵌套ifelse語句,形式如下:if嵌套語句例:計(jì)算如圖3.6所示的分段函數(shù)結(jié)果,示例代碼如下:程序運(yùn)行結(jié)果任務(wù)實(shí)現(xiàn)Part.04任務(wù)實(shí)現(xiàn)分析代碼01編寫代碼02分析代碼通過分析任務(wù)要求可知,快遞公司計(jì)算快遞費(fèi)用有兩個(gè)依據(jù):重量和目的地,在計(jì)算過程中需要按如下流程進(jìn)行:1)獲取用戶輸入的重量和目的地。重量需要轉(zhuǎn)換成數(shù)字類型,目的地則用0表示同城、1表示省內(nèi)、2表示省外。2)判斷快遞的重量,如果超過3公斤,進(jìn)一步判斷目的地,根據(jù)目的地的不同,先計(jì)算首重費(fèi)用,再加上超出部分的費(fèi)用,得出應(yīng)付的快遞費(fèi)用。3)如果快遞的重量未超過3公斤,則繼續(xù)判斷目的地,根據(jù)目的地的不同,直接按首重收費(fèi)標(biāo)準(zhǔn),得出應(yīng)付的快遞費(fèi)用。在計(jì)算快遞費(fèi)用的過程中,因涉及到重量和目的地兩個(gè)條件的雙重判斷,需要使用if嵌套語句。編寫代碼1)啟動PyCharm,選擇菜單File→NewProject,指定項(xiàng)目位置為D:\chapter03。2)右擊項(xiàng)目文件夾chapter03,在彈出的快捷菜單中選擇New→PythonFile,在彈出的新建Python文件對話框中輸入文件名postmail,類別為Pythonfile。編寫代碼3)在postmail.py文件的代碼編輯窗口,輸入如下代碼:輸入物品重量和目的地if嵌套計(jì)算費(fèi)用并輸出編寫代碼程序運(yùn)行結(jié)果任務(wù)總結(jié)Part.05通過本任務(wù)的學(xué)習(xí),掌握了Python中選擇結(jié)構(gòu)的用法,選擇結(jié)構(gòu)可以使用if語句、if-elif語句、if-elif-else語句及if嵌套語句來實(shí)現(xiàn)。在使用if語句時(shí)需要注意以下幾點(diǎn):條件表達(dá)式返回的值是布爾類型的值,即True(非0)和False(0或者空類型)。在條件表達(dá)式中也可以使用and、or、not、括號等進(jìn)行條件的耦合判斷。在多層級的if語句中,需要嚴(yán)格控制好不同級別代碼塊的縮進(jìn)量。if語句、else語句及elif語句的末尾需要加上英文半角的冒號。else語句和elif語句都不能單獨(dú)使用,必須和if語句一起配合使用。任務(wù)提出01任務(wù)分析02知識準(zhǔn)備03任務(wù)2用戶登錄檢測任務(wù)實(shí)現(xiàn)04任務(wù)總結(jié)05任務(wù)1打印樹形圖案任務(wù)提出Part.01任務(wù)提出編寫程序,根據(jù)用戶輸入的用戶名和密碼,判斷用戶名和密碼是否正確。允許用戶登錄僅有三次機(jī)會,如果超過三次,禁止登錄。任務(wù)分析Part.02任務(wù)分析1.創(chuàng)建Python程序login.py。2.使用循環(huán)語句控制程序執(zhí)行流程。3.在循環(huán)語句中,提示用戶輸入用戶名和密碼,并記錄當(dāng)前輸入的次數(shù),判斷用戶輸入的用戶名和密碼是否正確,如果不正確,則循環(huán)提示用戶輸入用戶名和密碼,并累加輸入的次數(shù)。4.根據(jù)用戶的輸入檢測結(jié)果,給出相應(yīng)的提示信息。5.運(yùn)行測試程序,檢驗(yàn)代碼執(zhí)行流程是否正確、功能是否實(shí)現(xiàn)。本任務(wù)主要實(shí)現(xiàn)的是對用戶名和密碼的正確性進(jìn)行檢測,用戶有三次輸入的機(jī)會,因此需要通過循環(huán)語句實(shí)現(xiàn)。具體的任務(wù)實(shí)施分析如下:while語句01while-else語句02知識準(zhǔn)備3.4while語句循環(huán)概念循環(huán)控制:是重復(fù)執(zhí)行某段程序,直到某個(gè)條件不滿足為止的一種程序結(jié)構(gòu)。循環(huán)結(jié)構(gòu)是一種常用的,重要的程序結(jié)構(gòu)。特點(diǎn):在給定條件成立時(shí),反復(fù)執(zhí)行某程序段,直到條件不成立時(shí)為止。給定的條件稱為循環(huán)條件,重復(fù)執(zhí)行的程序段稱為循環(huán)體,能夠決定控制是真是假的量稱為循環(huán)控制變量。Python常用的循環(huán)包括while循環(huán)和for循環(huán)。while循環(huán)語句while循環(huán)語句一般用于實(shí)現(xiàn)條件循環(huán),該語句由關(guān)鍵字while、循環(huán)條件和冒號組成,while語句和從屬于該語句的語句塊組成循環(huán)結(jié)構(gòu)。while條件表達(dá)式:

語句塊while循環(huán)的執(zhí)行流程:while循環(huán)的執(zhí)行流程首先判斷條件表達(dá)式的值,其值為真(True)時(shí),則執(zhí)行循環(huán)體中的語句塊,當(dāng)執(zhí)行完畢后,再重新判斷條件表達(dá)式的值是否為真,若仍為真,則繼續(xù)重新執(zhí)行循環(huán)體...如此循環(huán),直到條件表達(dá)式的值為假(False),終止循環(huán)。while循環(huán)語句語句塊while循環(huán)語句例:運(yùn)用while語句計(jì)算1+2+3+...+100的和,示例代碼如下:程序運(yùn)行結(jié)果3.5while-else語句在Python中,while語句中使用else語句,當(dāng)條件表達(dá)式為True時(shí),執(zhí)行語句塊1;為False時(shí)則執(zhí)行語句塊2,其語法格式如下:while條件表達(dá)式:

語句塊1#滿足條件執(zhí)行代碼塊1else:

語句塊2#不滿足條件執(zhí)行代碼塊2while-else語句while-else語句例:輸入變量x的值,循環(huán)輸出x的值,并判斷x的大小。示例代碼如下:程序運(yùn)行結(jié)果任務(wù)實(shí)現(xiàn)分析代碼01編寫代碼02分析代碼通過分析任務(wù)要求可知,用戶登錄系統(tǒng)可以輸入三次賬號密碼,考慮使用while循環(huán)語句來控制用戶輸入的次數(shù)不得超過3次。定義user、pwd、n三個(gè)變量分別用于保存用戶名、密碼、登錄次數(shù),初始值分別為空字符串、空字符串、1。在循環(huán)體語句中,按照如下步驟執(zhí)行:分析代碼在循環(huán)體語句中,按照如下步驟執(zhí)行:1)提示用戶當(dāng)前是第幾次登錄系統(tǒng)。2)使用input語句分別獲取用戶輸入的用戶名和密碼,并分別保存在變量user、pwd中。3)使用if-else語句判斷用戶輸入的用戶名和密碼是否正確,如果正確則給出歡迎信息,并結(jié)束循環(huán),如果輸入的用戶名和密碼錯誤,則給出錯誤提示信息。4)每登錄一次,將n值累加1。如果登錄次數(shù)n超過3,循環(huán)則進(jìn)入else分支,給出禁止登錄的編寫代碼1)啟動PyCharm,選擇菜單File→NewProject,指定項(xiàng)目位置為D:\chapter03。2)右擊項(xiàng)目文件夾chapter03,在彈出的快捷菜單中選擇New→PythonFile,在彈出的新建Python文件對話框中輸入文件名login,類別為Pythonfile。編寫代碼3)在login.py文件的代碼編輯窗口,輸入如下代碼:輸入用戶名和密碼編寫代碼數(shù)據(jù)處理并輸出——循環(huán)判斷用戶名和密碼,并根據(jù)情況輸出結(jié)果。任務(wù)總結(jié)Part.05while循環(huán)必須有一個(gè)明確的條件來終止循環(huán),否則它將無限循環(huán)下去。在設(shè)計(jì)循環(huán)時(shí),需確保在某種情況下條件表達(dá)式最終會變?yōu)镕alse,從而結(jié)束循環(huán)。通過本任務(wù)的學(xué)習(xí),理解了Python中循環(huán)結(jié)構(gòu)的執(zhí)行流程

,并掌握了while語句和while-else語句的基本用法。在使用while循環(huán)時(shí)需注意以下幾點(diǎn):在循環(huán)內(nèi)部定義只在循環(huán)內(nèi)部使用的變量時(shí),要注意避免在每次循環(huán)時(shí)都重新創(chuàng)建它們,這會浪費(fèi)大量的內(nèi)存和計(jì)算資源。如果變量需要在循環(huán)外部訪問,則應(yīng)在循環(huán)外部定義。while循環(huán)用于重復(fù)執(zhí)行一段代碼塊,直到滿足特定的條件為止;而while-else允許在while循環(huán)正常結(jié)束(被break語句強(qiáng)制退出除外)后執(zhí)行一段額外的代碼。任務(wù)提出01任務(wù)分析02知識準(zhǔn)備03任務(wù)3數(shù)據(jù)加密任務(wù)實(shí)現(xiàn)04任務(wù)總結(jié)05任務(wù)1打印樹形圖案任務(wù)提出Part.01任務(wù)提出編寫程序,假設(shè)當(dāng)前開發(fā)程序中需要對用戶的密碼進(jìn)行加密處理,已知用戶的密碼為字母或數(shù)字,其加密規(guī)則如下:如果是大寫字母,則轉(zhuǎn)換成ASCII碼加5后的小寫字母,如A->e,Z->d;如果是小寫字母,則轉(zhuǎn)換成ASCII碼加5后的大小字母,如a->E,z->D;如果是數(shù)字,將數(shù)字轉(zhuǎn)換成9-數(shù)字,如0->9,4->5;然后將轉(zhuǎn)換后的密碼反轉(zhuǎn),輸出原密碼和加密后的密碼。例如:原密碼aX1234,加密后的密碼5678bE。任務(wù)分析Part.02任務(wù)分析1.創(chuàng)建Python程序encrypt.py。2.使用循環(huán)語句控制程序執(zhí)行流程。3.在循環(huán)語句中,逐個(gè)判斷字母類別,根據(jù)不同的類別,選擇不同的加密規(guī)則進(jìn)行數(shù)據(jù)轉(zhuǎn)換。4.將轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行反轉(zhuǎn),輸出原文和密文。5.運(yùn)行測試程序,檢驗(yàn)數(shù)據(jù)密碼是否成功。本任務(wù)主要是實(shí)現(xiàn)對數(shù)據(jù)的加密處理,根據(jù)加密規(guī)則的要求,對原文的逐個(gè)字母進(jìn)行加密處理,需要運(yùn)用循環(huán)語句來實(shí)現(xiàn)。具體的任務(wù)實(shí)施分析如下:知識準(zhǔn)備Part.03for語句01range()函數(shù)02知識準(zhǔn)備3.6for語句for語句for循環(huán)是python編程中常用的一種循環(huán)結(jié)構(gòu)。循環(huán)變量n,用于保存讀取序列中的值。語句塊,重復(fù)執(zhí)行的循環(huán)體。for語句一般用于實(shí)現(xiàn)遍歷循環(huán)。遍歷指逐一訪問目標(biāo)對象中的數(shù)據(jù),例如逐個(gè)訪問字符串中的字符;遍歷循環(huán)指在循環(huán)中完成對目標(biāo)對象的遍歷。格式for循環(huán)變量in目標(biāo)對象:語句塊for循環(huán),常用于遍歷字符串、列表、元組、字典、集合等序列類型,逐個(gè)獲取序列中的每個(gè)元素。for循環(huán)的執(zhí)行流程:for循環(huán)的執(zhí)行流程使用for循環(huán)遍歷輸出字符串中的每個(gè)元素。for語句有目標(biāo)對象中是否有元素語句塊沒有例如:輸出“python”字符串。fornin"python":

print(n)

for循環(huán)的執(zhí)行,判斷目標(biāo)對象中是否還有元素,如果有,將目標(biāo)對象中的元素賦值給循環(huán)變量,執(zhí)行循環(huán)體語句塊;再次判斷目標(biāo)對象是否有元素,若有元素,則繼續(xù)重新執(zhí)行循環(huán)體語句塊...如此循環(huán),直到目標(biāo)對象中沒有元素為止。for語句例:使用for循環(huán)遍歷輸出字符串中的每個(gè)元素,示例代碼如下:程序運(yùn)行結(jié)果3.7range()函數(shù)range()函數(shù)Python提供的range函數(shù)可以讓for循環(huán)實(shí)現(xiàn)計(jì)數(shù)的功能,可以讓for循環(huán)從0到10計(jì)數(shù),或者從10到100每次遞增2等。說明:range返回一個(gè)整數(shù)序列。

start為整數(shù)序列的起始值。

end為整數(shù)序列的結(jié)束值,在生成的整數(shù)序列中,不包含結(jié)束值。

step為整數(shù)序列中遞增的步長,默認(rèn)為1。range函數(shù)的語法格式:range(start,end,step)range()函數(shù)range()函數(shù)的用法:range(start,end):指的是從start開始到end-1結(jié)束。range(num):指的是從0開始到num-1結(jié)束。range(start,end,step):指的是從start開始到end-1結(jié)束,步長為step。range()函數(shù)例1:range(0,5)生成包含0、1、2、3、4的整數(shù)序列。例2:range(10,20,2)生成包含10、12、14、16、18的整數(shù)序列,循環(huán)從10到20,不包括20,步長為2,循環(huán)次數(shù)為5。例3:編寫程序輸出0-10的數(shù)字。forninrange(0,11):

print(n)range()函數(shù)例:使用for循環(huán)語句輸出0~3的數(shù)字,示例代碼如下:程序運(yùn)行結(jié)果range()函數(shù)例:運(yùn)用for語句計(jì)算1+2+3+…+100的和,示例代碼如下:程序運(yùn)行結(jié)果任務(wù)實(shí)現(xiàn)Part.04任務(wù)實(shí)現(xiàn)分析代碼01編寫代碼02分析代碼通過分析任務(wù)要求可知,需要將用戶輸入的數(shù)據(jù)根據(jù)不同的轉(zhuǎn)換規(guī)則轉(zhuǎn)換成加密的密文字符串。首先提示用戶輸入原文,使用input()函數(shù)接收用戶輸入。接下來使用for循環(huán)從用戶輸入的原文中依次取出每位字符,根據(jù)加密規(guī)則,在for循環(huán)中嵌套if語句判斷每位字符是大寫字母、小寫字母還是數(shù)字,采用不同的轉(zhuǎn)換方式將其轉(zhuǎn)換并連接成加密密文。密文轉(zhuǎn)換過程中,將字符轉(zhuǎn)換成

ASCII碼值的函數(shù)是ord(),將ASCII碼值轉(zhuǎn)換成字符的函數(shù)是chr()。最后將轉(zhuǎn)換后的密文使用m[::-1]將密文反轉(zhuǎn),并輸出原文和加密后的密文。編寫代碼1)啟動PyCharm,在項(xiàng)目文件夾chapter03中新建Python文件encrpyt.py2)輸入如下代碼:編寫代碼根據(jù)轉(zhuǎn)換規(guī)則逐個(gè)轉(zhuǎn)換并連接編寫代碼輸出任務(wù)總結(jié)Part.05通過本任務(wù)的學(xué)習(xí),掌握了for循環(huán)語句和range()函數(shù)的使用方法。在使用過程需要注意以下幾點(diǎn):循環(huán)體是for關(guān)鍵字和冒號:之后的語句塊,語句塊需要縮進(jìn)。循環(huán)變量在每次遍歷時(shí)都會被賦值為目標(biāo)對象中的下一個(gè)元素,循環(huán)結(jié)束后,循環(huán)變量的值將是最后一次遍歷的值。一般情況下,不要在循環(huán)體內(nèi)部修改循環(huán)變量的值。for循環(huán)不需要顯示的設(shè)置循環(huán)的終止條件,當(dāng)目標(biāo)對象中的所有元素都被遍歷過之后,循環(huán)會自動結(jié)束。for循環(huán)執(zhí)行的次數(shù),取決于目標(biāo)對象中元素的個(gè)數(shù)。任務(wù)提出01任務(wù)分析02知識準(zhǔn)備03任務(wù)4猜價(jià)格贏折扣任務(wù)實(shí)現(xiàn)04任務(wù)總結(jié)05任務(wù)1打印樹形圖案任務(wù)提出Part.01任務(wù)提出編寫程序,實(shí)現(xiàn)猜價(jià)格贏折扣。顧客輸入購買商品的價(jià)格,系統(tǒng)隨機(jī)函數(shù)設(shè)定一個(gè)商品價(jià)格,價(jià)格范圍(100~200);顧客輸入猜測的價(jià)格,系統(tǒng)給出大小提出,如果在5輪內(nèi)猜到,給予獎勵提示,并為所購買商品打折。如果一次猜中,則所買商品折扣為5折;如果兩次猜中,則所購買商品折扣為6折;如果3次猜中,則所購買商品折扣為7折;如果4次猜中,則所購買商品折扣為8折;如果第5次猜中,則所購買商品折扣為9折。超過5次沒猜中的,商品沒有折扣。任務(wù)分析Part.02任務(wù)分析1.創(chuàng)建Python程序discount.py。2.輸入顧客購買商品的金額,系統(tǒng)隨機(jī)生成一個(gè)價(jià)格。3.使用循環(huán)嵌套語句控制程序執(zhí)行流程。4.在循環(huán)語句中,比較顧客每次猜測的價(jià)格與系統(tǒng)隨機(jī)生成的價(jià)格,根據(jù)規(guī)則,計(jì)算顧客可以獲得的折扣比例。在循環(huán)語句中,如果顧客猜中,可以直接結(jié)束循環(huán)語句。5.計(jì)算顧客所購買商品折扣后的金額,并輸出。6.運(yùn)行測試程序,檢驗(yàn)程序功能是否實(shí)現(xiàn)。本任務(wù)主要實(shí)現(xiàn)的功能,是根據(jù)顧客猜價(jià)格的情況確定折扣比例,顧客每次給出猜測價(jià)格后,程序都需要進(jìn)行判斷并進(jìn)行相應(yīng)的處理,因此需要使用循環(huán)并嵌套判斷語句來實(shí)現(xiàn)。具體的任務(wù)實(shí)施分析如下:知識準(zhǔn)備Part.03while循環(huán)嵌套01for循環(huán)嵌套02知識準(zhǔn)備break語句03continue語句043.8while循環(huán)嵌套循環(huán)嵌套軟件開發(fā)過程中,可能需要多次執(zhí)行循環(huán)語句,這時(shí)可以將循環(huán)語句放在循環(huán)語句之中,實(shí)現(xiàn)循環(huán)嵌套。也就是一個(gè)外循環(huán)的循環(huán)部分又是一個(gè)內(nèi)循環(huán)。循環(huán)嵌套按不同的循環(huán)語句可以劃分為while循環(huán)嵌套和for循環(huán)嵌套。while循環(huán)語句和for循環(huán)語句可以相互嵌套。在循環(huán)嵌套中,循環(huán)次數(shù)將等于外循環(huán)中的循環(huán)次數(shù)乘以內(nèi)循環(huán)中的循環(huán)次數(shù)。在外循環(huán)的每次循環(huán)中,內(nèi)循環(huán)執(zhí)行其所有循環(huán)。循環(huán)嵌套內(nèi)循環(huán)或外循環(huán)可以是任何類型,例如while循環(huán)或for循環(huán),外部for循環(huán)可以包含一個(gè)while循環(huán),反之亦然。外循環(huán)可以包含多個(gè)內(nèi)循環(huán)。內(nèi)循環(huán)中也包括其他語句,例如:if語句、if-else語句、if-elif-else語句、if嵌套等等。

說明:(1)對于外循環(huán)變量的每一個(gè)取值,內(nèi)循環(huán)要執(zhí)行完一個(gè)周期。(2)在很多應(yīng)用場合,要注意內(nèi)外循環(huán)變量間的聯(lián)系。(3)若內(nèi)循環(huán)體內(nèi)有break語句被執(zhí)行,則跳出后仍然在外循環(huán)體內(nèi)。(4)循環(huán)嵌套只能層層嵌套,不能出現(xiàn)內(nèi)外循環(huán)交叉。while循環(huán)嵌套while循環(huán)嵌套是指while語句中嵌套了while或for語句。以while語句中嵌套while語句為例,while循環(huán)嵌套的語法格式:格式while循環(huán)條件1: #外層循環(huán)語句塊1while循環(huán)條件2: #內(nèi)層循環(huán)語句塊2......格式while循環(huán)條件: #外層循環(huán)語句塊1for循環(huán)變量in目標(biāo)對象:#內(nèi)層循環(huán)語句塊2......while循環(huán)嵌套例:while循環(huán)中嵌套for循環(huán),示例代碼如下:程序運(yùn)行結(jié)果while循環(huán)嵌套例:使用while循環(huán)嵌套輸出如下左圖所示的“#”號矩形圖案,示例代碼如下:3.9for循環(huán)嵌套for循環(huán)嵌套for循環(huán)嵌套是指for語句中嵌套了while或for語句。以for語句中嵌套for語句為例,for循環(huán)嵌套的語法格式如下:格式for循環(huán)變量in目標(biāo)對象:#外層循環(huán)語句塊1for循環(huán)變量in目標(biāo)對象:#內(nèi)層循環(huán)語句塊2......格式for循環(huán)變量in目標(biāo)對象:#外層循環(huán)語句塊1while循環(huán)條件: #內(nèi)層循環(huán)語句塊2......for循環(huán)嵌套例:使用for嵌套循環(huán)輸出如下左圖所示的“#”號矩形圖案,示例代碼如下:3.10break語句break語句Python中提供了兩類特殊語句break語句和continue語句,用于結(jié)束或終止本次循環(huán)。break語句和continue語句一般要結(jié)合循環(huán)結(jié)構(gòu)使用,以在特定條件滿足時(shí)才結(jié)束或終止本次循環(huán)。break語句break語句用于結(jié)束循環(huán),若循環(huán)中使用了break語句,程序執(zhí)行到break語句時(shí)會結(jié)束循環(huán);若循環(huán)嵌套使用了break語句,程序執(zhí)行到break語句時(shí)會結(jié)束本層循環(huán)。break語句例如:從1開始,每次遞增1,求平方數(shù),當(dāng)平方大于100時(shí)退出循環(huán)。示例foriinrange(0,100):

if(i*i)>=100:

break

print(i)print("for循環(huán)結(jié)束")結(jié)果break語句的執(zhí)行for循環(huán)變量in目標(biāo)對象:語句......break......語句循環(huán)外語句break語句例:

對數(shù)字1、2、3…99依次求其平方數(shù),當(dāng)平方數(shù)大于等于100時(shí)退出循環(huán),示例代碼如下:程序運(yùn)行結(jié)果3.11continue語句continue語句continue語句用于在滿足條件的情況下跳出本次循環(huán),該語句通常也與if語句配合使用。示例i=1whilei<=100:

ifi%13!=0:i+=1

continue

print(i)i+=1

print("while循環(huán)結(jié)束")結(jié)果continue語句的執(zhí)行while條件:語句......continue......語句continue語句例:

輸出整數(shù)1~50中能被13整除的數(shù),示例代碼如下:程序運(yùn)行結(jié)果continue語句例:

從鍵盤上輸入不多于10個(gè)的整數(shù),求這些數(shù)的總和及其中正數(shù)的總和。若不足10個(gè)數(shù),則以0作為結(jié)束標(biāo)記,示例代碼如下:程序運(yùn)行結(jié)果任務(wù)實(shí)現(xiàn)Part.04任務(wù)實(shí)現(xiàn)分析代碼01編寫代碼02分析代碼根據(jù)前面的任務(wù)分析可知,可以運(yùn)用循環(huán)語句來控制顧客猜價(jià)格的流程。具體分析如下:1)初始設(shè)置猜測次數(shù)count為0、折扣比例dis為1。2)運(yùn)用random函數(shù)隨機(jī)產(chǎn)生一個(gè)范圍在100~200的價(jià)格price。3)用input函數(shù)接收顧客所購買商品的原始金額,用于計(jì)算最后的折扣金額。4)用while循環(huán)語句控制顧客猜價(jià)格的流程。在循環(huán)體中,判斷顧客猜測的價(jià)格是否與price一致,如果一致,再用if語句根據(jù)折扣計(jì)算規(guī)則,給出顧客可以獲得的折扣,并用break語句直接結(jié)束循環(huán);如果顧客猜測的價(jià)格不一致,則給出相應(yīng)的提示,并進(jìn)入下一次猜測,直至猜夠5次。5)最后根據(jù)顧客獲得的折扣,計(jì)算出顧客應(yīng)付的商品金額。編寫代碼1)啟動PyCharm,在項(xiàng)目文件夾chapter03中新建Python文件discount.py2)輸入如下代碼:輸入顧客所購買商品價(jià)格,猜想的商品價(jià)格。數(shù)據(jù)處理——while循環(huán),break提前結(jié)束循環(huán)編寫代碼輸出編寫代碼任務(wù)總結(jié)Part.05通過本任務(wù)的學(xué)習(xí),掌握了Python循環(huán)結(jié)構(gòu)的嵌套用法、循環(huán)結(jié)構(gòu)與分支結(jié)構(gòu)的嵌套使用,以及break、continue語句的作用。在使用過程中需要注意以下幾點(diǎn):嵌套循環(huán)可以有多層,每增加一層嵌套,都會增加代碼的復(fù)雜性,注意避免出現(xiàn)邏輯上的混亂。循環(huán)嵌套只能層層嵌套,不能出現(xiàn)內(nèi)外循環(huán)交叉。在嵌套循環(huán)中,每個(gè)循環(huán)都應(yīng)該有自己的變量。確保這些變量的命名不會沖突,并且能清晰地反映它們的用途。Python使用縮進(jìn)來定義代碼塊。在嵌套循環(huán)中,確保每一層循環(huán)的縮進(jìn)都是正確的。錯誤的縮進(jìn)會導(dǎo)致語法錯誤。break和continue只能用于循環(huán)結(jié)構(gòu)中(如for循環(huán)和while循環(huán)),不能用于其他類型的代碼塊中。如果有嵌套的循環(huán)結(jié)構(gòu),它們也只會影響最內(nèi)層的循環(huán)。項(xiàng)目4字符串了解字符串概念01掌握字符串創(chuàng)建和轉(zhuǎn)化的常用方法02掌握字符串格式化輸出的常用方法03知識目標(biāo)掌握字符串查找與替換的常用方法04掌握字符串分隔與拼接的常用方法05掌握字符串大小寫轉(zhuǎn)換的常用方法06掌握字符串對齊的常用方法07能夠使用三種方法創(chuàng)建字符串01能夠?qū)⑵渌鼣?shù)據(jù)類型轉(zhuǎn)化為字符串02能夠使用占位符和format函數(shù)完成字符串的格式化輸出03能力目標(biāo)能夠完成項(xiàng)目中字符串查找和替換功能04能夠?qū)崿F(xiàn)字母大小寫轉(zhuǎn)換05能夠?qū)崿F(xiàn)字符串的左對齊、居中和右對齊06目錄輸出英文歌詞任務(wù)1用戶名密碼提取任務(wù)2任務(wù)提出01任務(wù)分析02知識準(zhǔn)備03任務(wù)1輸出英文歌詞任務(wù)實(shí)現(xiàn)04任務(wù)總結(jié)05任務(wù)1打印樹形圖案任務(wù)提出Part.01提出任務(wù)1.編寫程序,用代碼的形式來輸出Godisagril這首歌的歌詞。輸出要求如下:所有歌詞居中顯示。歌詞起始和結(jié)束行分別為Begin和End表示。開始和結(jié)束行用橫線填充空白部分,歌詞片段用星號填充空白部分。最終顯示效果如圖所示。任務(wù)分析Part.02任務(wù)分析1.創(chuàng)建Python程序lyric.py。2.字符串創(chuàng)建:使用單引號分別將每行歌詞創(chuàng)建為字符串,并使用轉(zhuǎn)義字符處理字符串內(nèi)的單引號等特殊字符。3.字符串格式化:使用字符串格式化函數(shù)對每個(gè)字符串進(jìn)行格式化處理,并逐行輸出每一句歌詞。4.運(yùn)行測試程序,檢驗(yàn)輸出效果是否正確。

本任務(wù)為輸出給定格式的英文歌詞,因此需要通過創(chuàng)建字符串、格式化輸出字符串來實(shí)現(xiàn)。具體的任務(wù)實(shí)施分析如下:知識準(zhǔn)備Part.03字符串01字符串格式化02知識準(zhǔn)備字符串定義01字符串轉(zhuǎn)化024.1字符串字符串是放在引號中的一系列字符引號可以是成對的單引號,雙引號或三引號字符可以是字母、數(shù)字、運(yùn)算符號、標(biāo)點(diǎn)符號以及一些功能性符號注意:Python中沒有字符變量類型字符串定義人名“李明”手機(jī)號提示信息“請輸入密碼:”…字符串是Python中最常用的數(shù)據(jù)類型,用引號就能進(jìn)行創(chuàng)建,實(shí)例如下:字符串定義案例名稱代碼實(shí)現(xiàn)人名:李明name='李明’name1="李明"name2='''李明'''手機(jī)號hone_number=提示信息:請輸入密碼message='請輸入密碼:'三種引號創(chuàng)建字符串的適用場景:字符串定義單引號或雙引號通常用于簡單字符串的創(chuàng)建三引號通常用于復(fù)雜字符串的創(chuàng)建,比如字符串中包含特殊字符或創(chuàng)建多行字符串本任務(wù)中采用單引號還可以使用轉(zhuǎn)義字符對字符串中引號等特殊情況進(jìn)行處理:字符串定義單引號\':用于在包含單引號的字符串中表示單引號。雙引號\":用于在包含雙引號的字符串中表示雙引號。換行符\n:用于表示新的一行開始。制表符\t:用于表示一個(gè)制表位。反斜杠\\:用于表示一個(gè)反斜杠字符本身。ASCII碼\xhh:用于表示一個(gè)16進(jìn)制的ASCII碼。例如\x41代表大寫字母A。八進(jìn)制\ooo:用于表示一個(gè)8進(jìn)制的ASCII碼。例如\101代表大寫字母A。回退\r:用于表示回退至當(dāng)前行的開始。轉(zhuǎn)義字符示例及運(yùn)行結(jié)果:字符串定義Python中除了可以用引號創(chuàng)建字符串外,還可以使用str函數(shù)將其它數(shù)據(jù)類型轉(zhuǎn)化為字符串:字符串轉(zhuǎn)化數(shù)值型(整型、浮點(diǎn)數(shù)、布爾值)列表元組集合字典數(shù)值類型轉(zhuǎn)化為字符串:字符串轉(zhuǎn)化其它類型轉(zhuǎn)化為字符串:字符串轉(zhuǎn)化數(shù)值型、列表、元組、集合和字典都可以轉(zhuǎn)化為字符串類型轉(zhuǎn)化時(shí)這些類型的值和表征類型的標(biāo)點(diǎn)符號都會按順序轉(zhuǎn)化為字符串的值結(jié)論:字符串的不可變性:字符串轉(zhuǎn)化Python不支持通過賦值的方式直接修改字符串中某個(gè)字符元素結(jié)論:字符串的不可變性:字符串轉(zhuǎn)化字符串無法直接被修改,但是可以通過替換的方式間接進(jìn)行修改字符串格式化是一個(gè)常見的操作,它允許將變量或表達(dá)式的值嵌入到字符串中的特定位置字符串格式化方法主要有占位符法、format函數(shù)法以及f-string法字符串格式化字符串格式化占位符法:占位符的一般語法為:%[flags][width][.precision]typeflags:標(biāo)識符width:字段寬度precision:字段精度type:轉(zhuǎn)換說明符flags可選參數(shù):+:右對齊;正數(shù)前加正好,負(fù)數(shù)前加負(fù)號;-:

左對齊;正數(shù)前無符號,負(fù)數(shù)前加負(fù)號;空格:右對齊;正數(shù)前加空格,負(fù)數(shù)前加負(fù)號;0:

右對齊;正數(shù)前無符號,負(fù)數(shù)前加負(fù)號;用0填充空白處樣例:-10s,表示10個(gè)字符串位置,左對齊,后面用空格填充字符串格式化占位符法:占位符法采用以%開頭的轉(zhuǎn)換說明符對各種類型的數(shù)據(jù)進(jìn)行格式化輸出轉(zhuǎn)換說明符解釋轉(zhuǎn)換說明符解釋%d、%i轉(zhuǎn)換為帶符號的十進(jìn)制整數(shù)%g、%G綜合浮點(diǎn)數(shù)和科學(xué)記數(shù)法表示的浮點(diǎn)數(shù),由系統(tǒng)自動決定%o轉(zhuǎn)換為帶符號的八進(jìn)制整數(shù)%s轉(zhuǎn)化為字符串(使用str函數(shù))%x、%X轉(zhuǎn)換為帶符號的十六進(jìn)制整數(shù)%r轉(zhuǎn)化為字符串(使用repr函數(shù))%e、%E轉(zhuǎn)化為科學(xué)計(jì)數(shù)法表示的浮點(diǎn)數(shù)(e小寫/E大寫)%c單個(gè)字符,替換成只有一個(gè)字符的字符串%f、%F轉(zhuǎn)化為十進(jìn)制浮點(diǎn)數(shù)%u無符號整數(shù)占位符示例代碼:字符串格式化format方法:字符串格式化format方法的一般語法為:格式字符串.format(值1,值2,值3…)格式字符串由普通字符和格式字段組成。普通字符串直接原文輸出,格式字段用于設(shè)置轉(zhuǎn)換格式,format()方法中的參數(shù)值都將按照格式字段中的規(guī)則進(jìn)行格式化轉(zhuǎn)換。格式字段使用花括號{}括起來,基本形式為:{[序號或參數(shù)]:格式說明符}。序號是可選項(xiàng),用于指定輸出順序,0表示第一個(gè)輸出,1表示第二個(gè)輸出。如果沒有指定序號,則按順序輸出。序號格式化示例代碼:字符串格式化參數(shù)格式化示例代碼:字符串格式化參數(shù)也是可選項(xiàng),用于指定參數(shù)的名稱或字典的鍵值,format方法會按照參數(shù)的順序一一替換參數(shù)對應(yīng)的值。格式說明符:字符串格式化fill:填充符,可以是任何字符,默認(rèn)是空格,須與對齊方式組合使用。align:對齊方式,<表示左對齊、>表示右對齊、^表示居中對齊,默認(rèn)右對齊。sign:符號表示,僅用于數(shù)字。+表示正數(shù)、-表示負(fù)數(shù)、空格表示正數(shù)前加空格。width:指定輸出的最小字符數(shù),如果實(shí)際數(shù)據(jù)少于width,輸出會被填充。type:指定值的格式化類型。例如s表示字符串、d表示整數(shù)、f表示浮點(diǎn)數(shù)等。.precision:精度,對于浮點(diǎn)型表示小數(shù)點(diǎn)前后顯示的位數(shù),對于非數(shù)值型表示字符串最大長度。格式說明符是以冒號(:)開頭,基本形:[[fill[align][sign][width][.precision][type]format方法格式化輸出示例代碼:字符串格式化字符串格式化f-string法:f-string方法是在字符串前加上一個(gè)小寫的f或F,然后在大括號{}中嵌入表達(dá)式,基本語法格式為:f'{表達(dá)式[=][:格式說明符]}'表達(dá)式可以是常量、變量、計(jì)算公式或者函數(shù)調(diào)用等,“=”和格式說明符都是可選的,格式說明符的用于與format()方法中的格式說明符用法基本一致?;ɡㄌ杻?nèi)的引號不能與花括號外的引號沖突,可以靈活使用單引號、雙引號和三引號。f-string格式化示例代碼:字符串格式化運(yùn)行結(jié)果:注意:如果不添加f時(shí),字符串包括花括號中的內(nèi)容會都會原樣輸出。

任務(wù)實(shí)現(xiàn)Part.04分析代碼01編寫代碼02任務(wù)實(shí)現(xiàn)分析代碼首先要確定字符串格式化輸出的方法,這里可以選用format()方法;其次需要針對歌詞中的特殊部分進(jìn)行處理,這段歌詞中涉及到的特殊部分有單引號,填充字符和居中處理,對于單引號可以采用轉(zhuǎn)義字符進(jìn)行處理,填充字符和居中可以利用format函數(shù)的相關(guān)屬性進(jìn)行處理;最后采用print()函數(shù)進(jìn)行歌詞輸出。分析任務(wù):(1)啟動PyCharm,選擇菜單File→NewProject,指定項(xiàng)目位置為D:\Chapter04

(2)右擊項(xiàng)目文件夾Chapter04,在彈出的快捷菜單中選擇New→PythonFile,在彈出的新建Python文件對話框中輸入文件名lyric,類別為Pythonfile。編寫代碼(3)在lyric.py文件的代碼編輯窗口,輸入如下語句。編寫代碼程序運(yùn)行結(jié)果任務(wù)總結(jié)Part.05通過本任務(wù)的學(xué)習(xí),系統(tǒng)掌握了Python中字符串的創(chuàng)建、轉(zhuǎn)化和格式化輸出等方法。在使用字符串時(shí)需注意以下幾點(diǎn):字符串的創(chuàng)建有三種方式:單引號、雙引號和三引號。在創(chuàng)建一般字符串時(shí),優(yōu)先使用單引號和雙引號。三引號可以直接創(chuàng)建多行字符串。字符串中的某些字符具有特殊含義,如換行符(\n)、制表符(\t)、反斜杠(\\)等。要在字符串中包含這些特殊字符的字面值,需要使用反斜杠(\)作為轉(zhuǎn)義字符。如果不需要使用轉(zhuǎn)義字符,可以在字符串前加上r或R來創(chuàng)建原始字符串。在原始字符串中,反斜杠(\)被視為普通字符。字符串是不可變的,這意味著不能修改字符串中的某個(gè)字符。任何看似修改字符串的操作,實(shí)際上都是創(chuàng)建了一個(gè)新的字符串。格式化字符串時(shí),需確保占位符與提供的參數(shù)匹配、順序一致。在format()方法中,可以使用格式化類型(如:.2f用于浮點(diǎn)數(shù))來指定值的顯示方式,需確保格式化類型與值的類型相匹配。在嘗試將對象轉(zhuǎn)換為字符串之前,最好是先檢查其類型,避免在對不可轉(zhuǎn)換為字符串的對象進(jìn)行轉(zhuǎn)換時(shí)引發(fā)的異常。一般情況下,可以將數(shù)值型、列表、元組、集合和字典等五大類型轉(zhuǎn)化為字符串類型。f-string允許在字符串中直接嵌入Python表達(dá)式,需確保嵌入的表達(dá)式是有效的,并且不會產(chǎn)生意外的副作用。任務(wù)提出01任務(wù)分析02知識準(zhǔn)備03任務(wù)2用戶名密碼提取任務(wù)實(shí)現(xiàn)04任務(wù)總結(jié)05任務(wù)1打印樹形圖案任務(wù)提出Part.01提出任務(wù)

數(shù)據(jù)在網(wǎng)絡(luò)傳輸時(shí)都是遵照指定協(xié)議進(jìn)行傳輸?shù)模@時(shí)用戶名和密碼都會被連接在一個(gè)字符串中,因此當(dāng)接收到網(wǎng)絡(luò)數(shù)據(jù)時(shí)還需要從中提取出用戶名和密碼。比如:Python連接海康威視的網(wǎng)絡(luò)攝像頭時(shí)遵循RTSP推流格式,即URL為:rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0,其中username為用戶名,password為密碼。假設(shè)有一個(gè)正確的URL,需要從中提取出用戶名和密碼,并對密碼做如下處理:提出任務(wù)將密碼中的1替換為'*',2替換為'-’。將小寫字母替換為大寫字母。將用戶名和密碼分兩行輸出,居中對齊,用戶名兩邊用^填充。測試用例如下:測試用例輸出結(jié)果'rtsp://admin:Admin34567889@192.168.0.224:554/h264/ch1/main/av_stream'^^^^^admin^^^^^ADMIN34567889'rtsp://admin:Admin1111232224@192.168.0.224:554/h264/ch1/main/av_stream'^^^^^admin^^^^^ADMIN****-3---4任務(wù)分析Part.02任務(wù)分析1.創(chuàng)建Python程序get_user.py。2.對字符串進(jìn)行分隔處理,得到用戶名和密碼。3.對字符串進(jìn)行查找與替換,將密碼中的數(shù)字替換為符號。4.對字符串大小寫轉(zhuǎn)換,將密碼中的小寫字母替換為大寫字母。5.對字符串進(jìn)行格式化輸出。6.運(yùn)行測試程序,檢驗(yàn)輸出內(nèi)容和格式是否正確。本任務(wù)主要實(shí)現(xiàn)的是從給定格式的字符串中提取出用戶名密碼,因此需要使用字符串查找和替換、字符串分隔與拼接、字符串大小寫轉(zhuǎn)換、字符串對齊等方法來實(shí)現(xiàn)。具體的任務(wù)實(shí)施分析如下:知識準(zhǔn)備Part.03字符串查找與替換01字符串分隔與拼接02知識準(zhǔn)備字符串大小寫轉(zhuǎn)換03字符串對齊04字符串查找01字符串替換024.3字符串查找與替換正則表達(dá)式03Python中常用的字符串查找方法有find()、index()和count()。find()方法可以查找子串在字符串中的位置,如果找到則返回該子串首次出現(xiàn)的位置,找不到則返回-1。其語法格式為:str1.find(str2,start,end)其中str1是被查找的字符串,str2是子串,start和end分別為起始和結(jié)束位置參數(shù),該位置參數(shù)是可選的,如果該參數(shù)存在,那么查找的索引范圍為start到end-1,如果不填,默認(rèn)start=0,end=len(str1)。字符串查找index()方法的功能及用法和find()方法幾乎相同,唯一區(qū)別在于,找不到子串時(shí)index()方法會拋出異常,建議優(yōu)先使用find()方法。其語法格式為:str1.index(str2,start,end)。count()方法的功能在于查找子串在指定字符串中出現(xiàn)的次數(shù)。其語法格式為:str1.count(str2,start,end)。字符串查找字符串查找示例代碼:字符串查找注意:rfind()和rindex()方法也可以用于字符串的查找。

Index在無法找到的情況下報(bào)錯:Python中最常用的字符串替換方法是replace()方法,它的作用是用一個(gè)新的子串來替換原字符串中的某個(gè)子串。其語法格式為:str1.replace(old,new,[max])。其中old表示str1中需要被替換的子串部分,new表示新的子串,max表示最大替換次數(shù)。max是可選參數(shù),不填寫時(shí)默認(rèn)全部替換。字符串替換字符串替換示例代碼:字符串替換對于規(guī)則較為簡單的替換操作,replace()方法簡單易用。當(dāng)替換規(guī)則較為復(fù)雜時(shí),可以考慮使用正則表達(dá)式來實(shí)現(xiàn)。正則表達(dá)式是一種的高效的文本處理工具,常用于字符串的查找和替換。Python的正則表達(dá)式功能通過re模塊實(shí)現(xiàn),常用的方法主要有match()、search()、findall()和sub()等。正則表達(dá)式match()方法match()方法是一種字符串匹配方法,該方法嘗試從字符串的起始位置匹配,如果起始位置匹配成功返回匹配對象,否則返回None。常用方法如下:正則表達(dá)式方法名說明group()返回匹配的字符串。start()返回匹配的起始位置在目標(biāo)字符串中的索引。end()返回匹配的結(jié)束位置在目標(biāo)字符串中的索引。span()返回一個(gè)元組,包含匹配的起始位置和結(jié)束位置的索引。匹配對象的方法應(yīng)用示例代碼:正則表達(dá)式match()方法的語法格式為:re.match(pattern,string,flags=0)。其中參數(shù)pattrern為匹配的正則表達(dá)式,參數(shù)str為要匹配的字符串,flags為可選標(biāo)志,用于控制正則表達(dá)式的匹配方式。正則表達(dá)式修飾符說明re.IGNORECASE或re.I使匹配對大小寫不敏感re.MULTILINE或re.M多行匹配,影響^和$,使它們匹配字符串的每一行的開頭和結(jié)尾。re.DOTALL或re.S使.匹配包括換行符在內(nèi)的任意字符。re.ASCII使\w,\W,\b,\B,\d,\D,\s,\S僅匹配ASCII字符。re.VERBOSE或re.X忽略空格和注釋,可以更清晰地組織復(fù)雜的正則表達(dá)式。使用標(biāo)志(flags)示例代碼:正則表達(dá)式參數(shù)pattrern可以是字符串,也可以包含特殊字符和元字符等可選參數(shù)用于指定匹配模式正則表達(dá)式正則表達(dá)式正則表達(dá)式使用模式參數(shù)匹配示例代碼:正則表達(dá)式search()方法search()方法會掃描整個(gè)字符串來查找匹配項(xiàng)。如果字符串中的任何位置與模式匹配,它返回第一個(gè)匹配對象;否則,它返回None。語法格式和參數(shù)用法均與match()方法相同。正則表達(dá)式search()方法應(yīng)用示例代碼:正則表達(dá)式findall()方法findall()方法會掃描整個(gè)目標(biāo)字符串并返回所有成功的匹配字符串。語法格式和參數(shù)用法均與match()方法相同。正則表達(dá)式findall()方法應(yīng)用示例代碼:正則表達(dá)式sub()方法sub()用于在字符串中查找匹配正則表達(dá)式的部分,并將其替換為指定的字符串。語法格式為:re.sub(pattern,repl,string,count=0,flags=0)。參數(shù)repl為替換的字符串;count為可選參數(shù),表示最大的替換次數(shù),默認(rèn)為0,表示全部替換;其余參數(shù)與match()方法用法一致。正則表達(dá)式sub()方法應(yīng)用示例代碼:正則表達(dá)式字符串分隔01字符串拼接024.4字符串分隔與拼接字符串分隔指的是將一個(gè)字符串按照指定的分隔符(或模式)拆分成多個(gè)子字符串的過程。這些子字符串通常會被存儲在一個(gè)列表或其他數(shù)據(jù)結(jié)構(gòu)中,以便于進(jìn)一步處理或分析。常用的字符串分隔方法是split(),它可以將字符串分隔為序列,語法格式為:str1.split(separator,num)。separator是分隔符,可選參數(shù),默認(rèn)使用空格進(jìn)行分隔;num是分隔次數(shù),可選參數(shù),默認(rèn)全部分隔,如果設(shè)置了分隔次數(shù),就會從左開始將字符串進(jìn)行num次分隔,最后會得到num+1個(gè)子串。需要注意的是分隔符不會被保留在最終的結(jié)果中。字符串分隔字符串分隔示例代碼:字符串分隔rsplit()和splitlines()方法也可以用于字符串分隔,其用法與split()基本相同。字符串拼接是指將兩個(gè)或多個(gè)字符串連接在一起形成一個(gè)新的字符串的過程。通常用于組合文本、構(gòu)建消息或生成更長的字符串。字符串的拼接通常可以使用加號(+)法和join()方法。加號(+)法可以直接將兩個(gè)字符串用加號連接起來。join()方法則可以連接序列中的元素形成新的字符串,也可以看作是split()方法的逆方法。語法格式為:con.join(seq)。其中con為連接符,用來連接序列中各個(gè)元素所用的字符,seq為序列。字符串拼接字符串拼接示例代碼:字符串拼接空白文本去除示例代碼:字符串拼接4.5字符串大小寫轉(zhuǎn)換Python中常用的大小寫轉(zhuǎn)換方法主要有五種,它們的具體用法如下表所示:字符串大小寫轉(zhuǎn)換方法名稱示例說明lowerstr1.lower()將字符串變?yōu)樾?。upperstr1.upper()將字符串變?yōu)榇髮?。capitalizestr1.capitalize()將字符串首字母大寫,其余小寫。titlestr1.title()將字符串中所有單詞首字母變?yōu)榇?/p>

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論