《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目3、4 流程控制語(yǔ)句應(yīng)用、字符串_第1頁(yè)
《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目3、4 流程控制語(yǔ)句應(yīng)用、字符串_第2頁(yè)
《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目3、4 流程控制語(yǔ)句應(yīng)用、字符串_第3頁(yè)
《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目3、4 流程控制語(yǔ)句應(yīng)用、字符串_第4頁(yè)
《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目3、4 流程控制語(yǔ)句應(yīng)用、字符串_第5頁(yè)
已閱讀5頁(yè),還剩222頁(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)介

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

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

,媽媽給他買(mǎi)一部MP4;成績(jī)等于100分,爸爸給他買(mǎi)輛自行車(chē)。

示例代碼如下:程序運(yùn)行結(jié)果3.3if嵌套語(yǔ)句嵌套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折。訂票過(guò)程:有兩次判斷:一是對(duì)出行季節(jié)的判斷,一是對(duì)選擇艙位的判斷。需要用到嵌套if結(jié)構(gòu),即if語(yǔ)句的嵌套是指在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句。if嵌套語(yǔ)句python中通過(guò)if嵌套,實(shí)現(xiàn)程序中條件語(yǔ)句的嵌套邏輯。if判斷條件1:#外層條件語(yǔ)句塊1if判斷條件2:#內(nèi)層條件語(yǔ)句塊2...python

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

if表示式2:

語(yǔ)句塊1

else:

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

if表示式2:

語(yǔ)句塊1else:

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

if表達(dá)式2:

語(yǔ)句塊1

else:

語(yǔ)句塊2

else:

if表達(dá)式3:

語(yǔ)句塊3

else:

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

if表示式2:

語(yǔ)句塊1

else:

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

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

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

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

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

print(n)

for循環(huán)的執(zhí)行,判斷目標(biāo)對(duì)象中是否還有元素,如果有,將目標(biāo)對(duì)象中的元素賦值給循環(huán)變量,執(zhí)行循環(huán)體語(yǔ)句塊;再次判斷目標(biāo)對(duì)象是否有元素,若有元素,則繼續(xù)重新執(zhí)行循環(huán)體語(yǔ)句塊...如此循環(huán),直到目標(biāo)對(duì)象中沒(méi)有元素為止。for語(yǔ)句例:使用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等。說(shuō)明:range返回一個(gè)整數(shù)序列。

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

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

step為整數(shù)序列中遞增的步長(zhǎng),默認(rèn)為1。range函數(shù)的語(yǔ)法格式:range(start,end,step)range()函數(shù)range()函數(shù)的用法:range(start,end):指的是從start開(kāi)始到end-1結(jié)束。range(num):指的是從0開(kāi)始到num-1結(jié)束。range(start,end,step):指的是從start開(kāi)始到end-1結(jié)束,步長(zhǎng)為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,步長(zhǎng)為2,循環(huán)次數(shù)為5。例3:編寫(xiě)程序輸出0-10的數(shù)字。forninrange(0,11):

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

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

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

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

ifi%13!=0:i+=1

continue

print(i)i+=1

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

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

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

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

左對(duì)齊;正數(shù)前無(wú)符號(hào),負(fù)數(shù)前加負(fù)號(hào);空格:右對(duì)齊;正數(shù)前加空格,負(fù)數(shù)前加負(fù)號(hào);0:

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

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

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

數(shù)據(jù)在網(wǎng)絡(luò)傳輸時(shí)都是遵照指定協(xié)議進(jìn)行傳輸?shù)模@時(shí)用戶名和密碼都會(huì)被連接在一個(gè)字符串中,因此當(dāng)接收到網(wǎng)絡(luò)數(shù)據(jù)時(shí)還需要從中提取出用戶名和密碼。比如:Python連接??低暤木W(wǎng)絡(luò)攝像頭時(shí)遵循RTSP推流格式,即URL為:rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0,其中username為用戶名,password為密碼。假設(shè)有一個(gè)正確的URL,需要從中提取出用戶名和密碼,并對(duì)密碼做如下處理:提出任務(wù)將密碼中的1替換為'*',2替換為'-’。將小寫(xiě)字母替換為大寫(xiě)字母。將用戶名和密碼分兩行輸出,居中對(duì)齊,用戶名兩邊用^填充。測(cè)試用例如下:測(cè)試用例輸出結(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.對(duì)字符串進(jìn)行分隔處理,得到用戶名和密碼。3.對(duì)字符串進(jìn)行查找與替換,將密碼中的數(shù)字替換為符號(hào)。4.對(duì)字符串大小寫(xiě)轉(zhuǎn)換,將密碼中的小寫(xiě)字母替換為大寫(xiě)字母。5.對(duì)字符串進(jìn)行格式化輸出。6.運(yùn)行測(cè)試程序,檢驗(yàn)輸出內(nèi)容和格式是否正確。本任務(wù)主要實(shí)現(xiàn)的是從給定格式的字符串中提取出用戶名密碼,因此需要使用字符串查找和替換、字符串分隔與拼接、字符串大小寫(xiě)轉(zhuǎn)換、字符串對(duì)齊等方法來(lái)實(shí)現(xiàn)。具體的任務(wù)實(shí)施分析如下:知識(shí)準(zhǔn)備Part.03字符串查找與替換01字符串分隔與拼接02知識(shí)準(zhǔn)備字符串大小寫(xiě)轉(zhuǎn)換03字符串對(duì)齊04字符串查找01字符串替換024.3字符串查找與替換正則表達(dá)式03Python中常用的字符串查找方法有find()、index()和count()。find()方法可以查找子串在字符串中的位置,如果找到則返回該子串首次出現(xiàn)的位置,找不到則返回-1。其語(yǔ)法格式為: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()方法會(huì)拋出異常,建議優(yōu)先使用find()方法。其語(yǔ)法格式為:str1.index(str2,start,end)。count()方法的功能在于查找子串在指定字符串中出現(xiàn)的次數(shù)。其語(yǔ)法格式為:str1.count(str2,start,end)。字符串查找字符串查找示例代碼:字符串查找注意:rfind()和rindex()方法也可以用于字符串的查找。

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

溫馨提示

  • 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)論