




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
模塊3課程名稱(chēng)Python程序設(shè)計(jì)基礎(chǔ)教程章名模塊3流程控制——邏輯嚴(yán)謹(jǐn),使用分支與循環(huán)評(píng)定獎(jiǎng)學(xué)金教學(xué)內(nèi)容條件分支語(yǔ)句、循環(huán)語(yǔ)句、break/continue語(yǔ)句課時(shí)6項(xiàng)目性質(zhì)□演性 驗(yàn)性 □計(jì)性 R合性授課班級(jí)授課日期授課地點(diǎn)教學(xué)目標(biāo)(1)能夠根據(jù)程序的處理邏輯,選擇合適的條件分支語(yǔ)句。(2)熟悉循環(huán)控制結(jié)構(gòu),會(huì)使用while循環(huán)。(3)程序中結(jié)合range函數(shù)、列表等,完成for循環(huán)處理。(4)根據(jù)程序邏輯需要,靈活應(yīng)用break和continue語(yǔ)句跳出循環(huán)體。(5)學(xué)會(huì)正確使用Python縮進(jìn),標(biāo)識(shí)不同的邏輯代碼塊。教學(xué)重點(diǎn)(1)if分支結(jié)構(gòu)的用法;(2)while循環(huán)結(jié)構(gòu)的用法;(3)for循環(huán)結(jié)構(gòu)的用法;(4)range()函數(shù)產(chǎn)生數(shù)字序列;(5)break、continue關(guān)鍵字退出循環(huán)。教學(xué)難點(diǎn)(1)循環(huán)的處理流程;(2)循環(huán)的嵌套使用;(3)break、continue的區(qū)別。教學(xué)準(zhǔn)備教材:《Python程序設(shè)計(jì)項(xiàng)目教程--從入門(mén)到實(shí)踐》學(xué)習(xí)平臺(tái):超星Python教學(xué)平臺(tái)或職教云Python教學(xué)平臺(tái)硬件設(shè)備:裝有Python開(kāi)發(fā)環(huán)境的計(jì)算機(jī);(4)教學(xué)資源:課件PPT、實(shí)訓(xùn)指導(dǎo)書(shū)教學(xué)過(guò)程教學(xué)環(huán)節(jié)教學(xué)內(nèi)容與過(guò)程(教學(xué)內(nèi)容、教學(xué)方法、組織形式、教學(xué)手段)課前組織(1)在學(xué)習(xí)平臺(tái)上發(fā)布微課視頻讓同學(xué)們預(yù)習(xí);(2)在學(xué)習(xí)平臺(tái)上發(fā)布上課使用的PPT;(3)在學(xué)習(xí)平臺(tái)上發(fā)布實(shí)訓(xùn)指導(dǎo)書(shū);(4)在學(xué)習(xí)平臺(tái)上發(fā)布本次課程學(xué)習(xí)成果檢驗(yàn)題目。課程內(nèi)容描述【情景導(dǎo)入】為了鼓勵(lì)學(xué)生更好完成學(xué)業(yè)、踐行歷史使命,某學(xué)院設(shè)立了獎(jiǎng)學(xué)金,制定了評(píng)選標(biāo)準(zhǔn)進(jìn)而表彰優(yōu)秀學(xué)生。在實(shí)際項(xiàng)目開(kāi)發(fā)過(guò)程中,需要根據(jù)不同的條件執(zhí)行不同的功能,也可能需要重復(fù)多次執(zhí)行某些功能,這就需要控制程序的流程。本項(xiàng)目將引入程序流程控制語(yǔ)句,根據(jù)學(xué)生課程成績(jī)及評(píng)審條件,評(píng)定多位學(xué)生的獎(jiǎng)學(xué)金。按照“由易到難、逐步完善”的思路,將獎(jiǎng)學(xué)金評(píng)定項(xiàng)目分解為3個(gè)任務(wù):【任務(wù)3.1if語(yǔ)句評(píng)定單個(gè)學(xué)生的獎(jiǎng)學(xué)金】【任務(wù)分析】為營(yíng)造良好的學(xué)習(xí)氛圍,某學(xué)院決定將根據(jù)學(xué)生Python和Database兩門(mén)課程的成績(jī)情況,評(píng)定學(xué)院獎(jiǎng)學(xué)金。假定評(píng)審規(guī)則如下:?jiǎn)慰瞥煽?jī)大于等于90分,總成績(jī)大于185分,一等獎(jiǎng)學(xué)金;單科成績(jī)大于等于85分,總成績(jī)大于175分,二等獎(jiǎng)學(xué)金;單科成績(jī)大于等于80分,總成績(jī)大于165分,三等獎(jiǎng)學(xué)金;不滿(mǎn)足上述條件,則無(wú)獎(jiǎng)學(xué)金。本任務(wù)要求用戶(hù)從鍵盤(pán)輸入某同學(xué)成績(jī),根據(jù)評(píng)審規(guī)則評(píng)定其獎(jiǎng)學(xué)金等級(jí),需要完成的具體工作內(nèi)容如表所示。3.1.1if單分支語(yǔ)句程序設(shè)計(jì)中遇到根據(jù)某個(gè)條件,決定是否執(zhí)行某個(gè)動(dòng)作(功能)的情況時(shí),需要使用if單分支語(yǔ)句,其語(yǔ)法結(jié)構(gòu)為:if條件表達(dá)式:代碼塊1if關(guān)鍵字后附帶一個(gè)條件表達(dá)式,如該條件成立則執(zhí)行代碼塊1中的語(yǔ)句,然后執(zhí)行后面的語(yǔ)句;如果條件不成立,則忽略代碼塊1,直接執(zhí)行后面的語(yǔ)句。Python課程期末考試以60分為合格線(xiàn),成績(jī)合格則給出相應(yīng)的提示,實(shí)現(xiàn)代碼如下:#3_1_if單分支語(yǔ)句示例.pyscore=72ifscore>=60:#如果條件成立,則執(zhí)行下面一行代碼print("恭喜,通過(guò)了Python課程考核!")#打印提示信息print("程序結(jié)束!")#最后執(zhí)行該行代碼if后面的條件表達(dá)式使用關(guān)系運(yùn)算符“==”或“!=”書(shū)寫(xiě),示例如下:#3_2_使用關(guān)系運(yùn)算符構(gòu)建條件表達(dá)式.py#使用雙等號(hào)“==”書(shū)寫(xiě)條件表達(dá)式subject='Python'ifsubject=='Python':#判斷科目subject是否為Python,返回一個(gè)布爾值print('歡迎參加Python課程學(xué)習(xí)。')#if條件判斷結(jié)果為真,執(zhí)行該語(yǔ)句#使用“!=”書(shū)寫(xiě)條件表達(dá)式score=100ifscore!=100:#判斷分?jǐn)?shù)score是否為100分print('您沒(méi)有考滿(mǎn)分,仍有提升空間!')if后面的條件表達(dá)式使用成員運(yùn)算符“in”或“notin”書(shū)寫(xiě),示例如下:#3_3_使用成員運(yùn)算符構(gòu)建條件表達(dá)式.py#使用“in”書(shū)寫(xiě)條件表達(dá)式if"P"in"Python":#判斷"P"是否在"Python"中print("字符'P'在'Python'字符串中。")#使用“notin”書(shū)寫(xiě)條件表達(dá)式if50notin[10,20,30]:#判斷50是否在列表[10,20,30]中print("數(shù)值50不在[10,20,30]列表中。")3.1.2避免縮進(jìn)錯(cuò)誤在書(shū)寫(xiě)if分支語(yǔ)句時(shí)需要注意使用“縮進(jìn)”。處理文檔時(shí),使用縮進(jìn)來(lái)展示邏輯結(jié)構(gòu);比如下面的目錄中,通過(guò)縮進(jìn)2個(gè)空格方式,說(shuō)明不同內(nèi)容之間的邏輯關(guān)系(上下級(jí)關(guān)系、同級(jí)關(guān)系),使其結(jié)構(gòu)更加清晰。第3章程序流程控制語(yǔ)句第1節(jié)條件分支語(yǔ)句1.1單分支語(yǔ)句1.2雙分支語(yǔ)句1.3多分支語(yǔ)句第2節(jié)循環(huán)語(yǔ)句2.1for循環(huán)語(yǔ)句2.2while循環(huán)語(yǔ)句Python以“縮進(jìn)”方式標(biāo)識(shí)不同代碼塊之間的邏輯關(guān)系。下面的代碼用于求某個(gè)數(shù)number的絕對(duì)值:#3_4_1使用縮進(jìn)標(biāo)識(shí)不同代碼塊.pynumber=-5ifnumber<0:#判斷數(shù)字number是否為負(fù)數(shù)print("數(shù)值為負(fù)數(shù),需要轉(zhuǎn)變?yōu)檎龜?shù)!")#滿(mǎn)足if條件執(zhí)行的代碼段number=-number#滿(mǎn)足if條件執(zhí)行的代碼段print("輸出結(jié)果為:",number)#無(wú)論if條件是否成立都要執(zhí)行的代碼段注意:縮進(jìn)是Python代碼的組成部分,有一些特殊的要求。(1)頂級(jí)代碼必須頂格寫(xiě)(3-4示例中第2、第3、第6行),即如果一行代碼本身不依賴(lài)于任何條件,則不能進(jìn)行任何縮進(jìn);(2)同一級(jí)別的代碼,縮進(jìn)必須一致;如第4行、第5行代碼,屬于同一個(gè)級(jí)別、同一個(gè)邏輯代碼塊,其縮進(jìn)一致;(3)官方建議使用4個(gè)空格作為縮進(jìn)。常見(jiàn)的縮進(jìn)錯(cuò)誤:(1)忘記縮進(jìn)number=-5ifnumber<0:print("數(shù)值為負(fù)數(shù),需要轉(zhuǎn)變?yōu)檎龜?shù)!")number=-numberprint("輸出結(jié)果為:",number)忘記縮進(jìn)也可能不報(bào)錯(cuò),但可能會(huì)引起程序邏輯錯(cuò)誤,不能產(chǎn)生期望的結(jié)果。number=5ifnumber<0:print("數(shù)值為負(fù)數(shù),需要轉(zhuǎn)變?yōu)檎龜?shù)!")number=-numberprint("輸出結(jié)果為:",number)(2)不必要的縮進(jìn):可能導(dǎo)致程序報(bào)錯(cuò)number=5ifnumber<0:print("數(shù)值為負(fù)數(shù),需要轉(zhuǎn)變?yōu)檎龜?shù)!")number=-numberprint("輸出結(jié)果為:",number)不必要的縮進(jìn)也可能并不會(huì)報(bào)錯(cuò),但是卻得不到正確的輸出結(jié)果number=5ifnumber<0:print("數(shù)值為負(fù)數(shù),需要轉(zhuǎn)變?yōu)檎龜?shù)!")number=-numberprint("輸出結(jié)果為:",number)(3)其它錯(cuò)誤的縮進(jìn)number=5ifnumber<0:print("數(shù)值為負(fù)數(shù),需要轉(zhuǎn)變?yōu)檎龜?shù)!")number=-numberprint("輸出結(jié)果為:",number)3.1.3多個(gè)判斷條件在if語(yǔ)句的條件表達(dá)式中結(jié)合關(guān)鍵字“and”、“or”實(shí)現(xiàn)多條件組合判斷。(1)“條件Aand條件B”,表示兩個(gè)條件A、B同時(shí)成立時(shí),其結(jié)果為T(mén)rue,否則為False;示例如下:#3_5_使用and連接條件表達(dá)式.pysubject='Python'score=92ifsubject=='Python'andscore>=90:#判斷科目是否為Python并且分?jǐn)?shù)是否大于等于90print('您的Python課程成績(jī)優(yōu)秀!')#兩個(gè)條件都成立,執(zhí)行該語(yǔ)句、打印輸出在if語(yǔ)句的條件表達(dá)式中結(jié)合關(guān)鍵字“and”、“or”實(shí)現(xiàn)多條件組合判斷。(2)“條件Aor條件B”,表示兩個(gè)條件A、B同時(shí)成立時(shí),其結(jié)果為T(mén)rue,否則為False;示例如下:#3_6_使用or連接條件表達(dá)式.pytoday='Sunday'iftoday=='Saturday'ortoday=='Sunday':#判斷today是否為Saturday或Sundayprint('今天是周末,可以休息一下了!')#兩個(gè)條件只要有一個(gè)為真,執(zhí)行該語(yǔ)句、打印輸出3.1.4if-else雙分支語(yǔ)句Python將if語(yǔ)句和else語(yǔ)句聯(lián)合使用,組成if-else雙分支語(yǔ)句,可同時(shí)處理滿(mǎn)足條件和不滿(mǎn)足條件兩種情況。語(yǔ)法結(jié)構(gòu):if條件表達(dá)式:#條件表達(dá)式結(jié)果為“真”(True),執(zhí)行代碼塊1;代碼塊1else:#條件表達(dá)式結(jié)果為“假”(False),執(zhí)行代碼塊2;代碼塊2當(dāng)if條件成立(判斷結(jié)果為“True”)時(shí),執(zhí)行代碼塊1,完畢后繼續(xù)執(zhí)行后面的語(yǔ)句;當(dāng)if條件不成立(判斷結(jié)果為“False”)時(shí),執(zhí)行代碼塊2,完畢后繼續(xù)執(zhí)行后面的語(yǔ)句。例:為某門(mén)課程考試成績(jī)?cè)O(shè)置60分及格線(xiàn),考慮及格、不及格兩種情況,打印不同的信息。代碼如下:#3_7_if-else雙分支語(yǔ)句示例(1).pyscore=82ifscore>=60:#判斷分?jǐn)?shù)score是否大于等于60分print('恭喜,您已通過(guò)考試!')#if條件判斷的結(jié)果為真,執(zhí)行該語(yǔ)句else:print('遺憾,您未通過(guò)考試!')#if條件判斷的結(jié)果為假,執(zhí)行該語(yǔ)句例:判斷一個(gè)數(shù)是奇數(shù)還是偶數(shù)從而輸出不同的結(jié)果。代碼如下:#3_8_if-else雙分支語(yǔ)句示例(2).pynum=2022ifnum%2==0:#判斷num是否能被2整除print(num,'是一個(gè)偶數(shù)')#if條件返回值為真,執(zhí)行該語(yǔ)句else:print(num,'是一個(gè)奇數(shù)')#if條件返回值為假,執(zhí)行該語(yǔ)句注意:if-else雙分支語(yǔ)句需要注意以下語(yǔ)法規(guī)則:(1)if條件和else后面要有冒號(hào)“:”;(2)合理使用縮進(jìn),以便區(qū)分不同的代碼塊。3.1.5if-elif-else多分支語(yǔ)句Python提供了if-elif-else多分支結(jié)構(gòu),從而能夠?qū)Χ喾N情況做出不同的處理。語(yǔ)法結(jié)構(gòu):if條件表達(dá)式1:#如條件表達(dá)式1成立,執(zhí)行代碼塊1;否則跳轉(zhuǎn)到“elif條件表達(dá)式2”代碼塊1elif條件表達(dá)式2:#如條件表達(dá)式2成立,執(zhí)行代碼塊2;否則跳轉(zhuǎn)到“elif條件表達(dá)式3”代碼塊2elif條件表達(dá)式3:代碼塊3else:代碼塊n代碼塊m首先判斷條件表達(dá)式1是否成立,如果成立則執(zhí)行代碼塊1,執(zhí)行完畢后跳轉(zhuǎn)到代碼塊m。如條件1不成立,則繼續(xù)判斷條件表達(dá)式2;當(dāng)條件表達(dá)式2成立時(shí),則執(zhí)行代碼塊2,執(zhí)行完畢后跳轉(zhuǎn)到代碼塊m。以此類(lèi)推,如果所有條件均不成立,最后執(zhí)行else下面的代碼塊n,然后跳轉(zhuǎn)到代碼塊m。多分支語(yǔ)句的執(zhí)行流程如圖所示:例:根據(jù)學(xué)生成績(jī),劃分考核等級(jí):優(yōu)秀(90分-100分)、良好(80分-90分)、中等(70分到80分)、及格(60分-70分)、不及格(0分-60分);用多分支語(yǔ)句實(shí)現(xiàn)成績(jī)等級(jí)的判斷。代碼如下:#3_9_if-elif-else多分支語(yǔ)句示例.pyscore=87ifscore>=90andscore<=100:#判斷分?jǐn)?shù)score是否在90-100之間print('考試成績(jī)優(yōu)秀')#滿(mǎn)足判斷條件則執(zhí)行該語(yǔ)句elifscore>=80andscore<90:#不滿(mǎn)足上述條件,繼續(xù)判斷分?jǐn)?shù)是否在80—90之間print('考試成績(jī)良好')elifscore>=70andscore<80:#不滿(mǎn)足上述條件,繼續(xù)判斷分?jǐn)?shù)是否在70—80之間print('考試成績(jī)中等')elifscore>=60andscore<70:#不滿(mǎn)足上述條件,繼續(xù)判斷分?jǐn)?shù)是否在60—70之間print('考試成績(jī)及格')else:#上述條件都不滿(mǎn)足,執(zhí)行else后面的語(yǔ)句print('考試成績(jī)不及格')3.1.6if語(yǔ)句嵌套在編寫(xiě)程序時(shí),可以根據(jù)實(shí)際需求選擇合適的if條件分支語(yǔ)句。簡(jiǎn)單的條件判斷,可以使用if單分支語(yǔ)句;如果程序需要考慮兩種條件判斷的結(jié)果,使用if-else雙分支語(yǔ)句;如果程序需要根據(jù)多個(gè)判斷條件做出不同反應(yīng),使用if-elif-else多分支語(yǔ)句;如果程序邏輯比較復(fù)雜,可以嵌套使用if語(yǔ)句。所謂if語(yǔ)句嵌套,是指在一個(gè)if語(yǔ)句內(nèi)部嵌套另外一個(gè)if語(yǔ)句。例:某血液采集中心允許獻(xiàn)血的條件為:(1)男性體重大于50kg,年齡在18-60周歲;(2)女性體重大于45kg,年齡在18-55周歲。編程分析:獻(xiàn)血對(duì)象有男性和女性?xún)蓚€(gè)群體,使用if-else雙分支語(yǔ)句把兩個(gè)群體分開(kāi)處理;接下來(lái)在每一個(gè)群體內(nèi)部,通過(guò)嵌套if語(yǔ)句設(shè)置本群體的獻(xiàn)血條件。實(shí)現(xiàn)的代碼如下。#3_10_if語(yǔ)句嵌套使用示例.pygender='女'weight=55age=24ifgender=='女':#判斷性別gender是否為女ifweight>=45and18<=age<=55:#判斷體重weight和年齡age是否滿(mǎn)足女性的獻(xiàn)血條件print('該女士可以獻(xiàn)血。')else:print('該女士條件不滿(mǎn)足,不允許獻(xiàn)血。')else:#性別gender為男ifweight>=50and18<=age<=60:#判斷體重weight和年齡age是否滿(mǎn)足男性的獻(xiàn)血條件print('該男士可以獻(xiàn)血。')else:print('該男士條件不滿(mǎn)足,不允許獻(xiàn)血。')【任務(wù)3.2while/for循環(huán)評(píng)定多個(gè)學(xué)生的獎(jiǎng)學(xué)金】【任務(wù)分析】前述任務(wù)中,使用if多分支語(yǔ)句完成了某個(gè)學(xué)生獎(jiǎng)學(xué)金的評(píng)定?,F(xiàn)實(shí)生活中,可能會(huì)有多個(gè)學(xué)生參與獎(jiǎng)學(xué)金的評(píng)定;因此,本任務(wù)中嘗試評(píng)定N個(gè)學(xué)生的獎(jiǎng)學(xué)金(N由用戶(hù)從鍵盤(pán)輸入),需要完成的具體工作內(nèi)容如表所示。3.2.1while循環(huán)語(yǔ)句程序設(shè)計(jì)中會(huì)遇到需要反復(fù)執(zhí)行某功能(代碼塊)的情況。Python引入了while循環(huán)和for循環(huán)。while循環(huán)的基本語(yǔ)法格式如下:while條件表達(dá)式:循環(huán)體(需重復(fù)執(zhí)行的代碼塊)當(dāng)該條件表達(dá)式為真True(條件成立)時(shí),執(zhí)行循環(huán)體,然后重新判斷條件表達(dá)式是否成立;如條件成立則再次執(zhí)行循環(huán)體,直到條件表達(dá)式為假False時(shí),不再執(zhí)行循環(huán)體中的代碼塊、退出循環(huán)。執(zhí)行流程如圖所示。例:使用while循環(huán)計(jì)算1—100內(nèi)所有整數(shù)之和。代碼如下:#3_11_while循環(huán)語(yǔ)句示例(1).pytotal=0#定義total變量存放累加結(jié)果,賦初始值為0i=1#i變量表示1到100內(nèi)的數(shù)值,賦初始值為1whilei<=100:#循環(huán)判斷條件為i<=100,若條件成立,則執(zhí)行下面兩行代碼total=total+i#將i累加到total中i=i+1#每循環(huán)一輪,i的值都加1;然后,返回到第4行繼續(xù)判斷條件是否成立print('1+2+3+...+100=',total)例:使用while循環(huán)計(jì)算1—100內(nèi)所有整數(shù)之和。引入一個(gè)標(biāo)記變量flag作為執(zhí)行循環(huán)的控制信號(hào);當(dāng)flag為T(mén)rue時(shí),執(zhí)行循環(huán)體,改寫(xiě)上述示例代碼如下:#3_12_while循環(huán)語(yǔ)句示例(2).pytotal=0i=1flag=True#設(shè)置flag變量的取值為真whileflag:#flag取值為真時(shí),反復(fù)執(zhí)行循環(huán)體中的操作total=total+ii=i+1ifi>100:#當(dāng)i>100時(shí),改變flag變量的值為假,從而終止循環(huán)flag=Falseprint('1+2+3+...+100=',total)例:猜數(shù)字。預(yù)先設(shè)定一個(gè)整數(shù)數(shù)字,用戶(hù)共有5次機(jī)會(huì)猜數(shù)字,猜對(duì)或猜錯(cuò)具有相應(yīng)提示。分析該程序的循環(huán)條件為:只有5次機(jī)會(huì)猜數(shù)字;循環(huán)體中執(zhí)行以下兩個(gè)操作:(1)用戶(hù)從鍵盤(pán)輸入猜測(cè)的數(shù)字,并將字符串?dāng)?shù)字轉(zhuǎn)換為整型數(shù)字。(2)用戶(hù)輸入的數(shù)字和預(yù)先設(shè)定的數(shù)字進(jìn)行比較,根據(jù)不同的情況輸出不同結(jié)果。具體代碼如下:#3_13_while循環(huán)語(yǔ)句示例(3).pykey=10#預(yù)先設(shè)定待猜測(cè)的數(shù)字i=5#剩余的機(jī)會(huì)次數(shù)whilei>0:#循環(huán)條件:剩余的機(jī)會(huì)大于0次guess=int(input("請(qǐng)輸入你猜測(cè)的數(shù)字:"))#用戶(hù)輸入猜測(cè)的數(shù)字并轉(zhuǎn)換為整型ifguess==key:#判斷用戶(hù)輸入的數(shù)字和key是否相等print("恭喜你,答對(duì)了!")elifguess<key:print("猜小了!")else:print("猜大了!")#用掉一次機(jī)會(huì),i減少13.2.2for循環(huán)語(yǔ)句程序設(shè)計(jì)中會(huì)遇到需要反復(fù)執(zhí)行某功能(代碼塊)的情況。Python引入了while循環(huán)和for循環(huán)。for循環(huán)的基本語(yǔ)法格式如下:for變量in可迭代對(duì)象:循環(huán)體(需重復(fù)執(zhí)行的代碼塊)所謂可迭代對(duì)象是指元素可以單獨(dú)提取出來(lái)的對(duì)象,如字符串、列表、元組、字典、集合等都是可迭代對(duì)象。for循環(huán)每執(zhí)行一輪,就從可迭代對(duì)象中讀取一個(gè)元素,然后賦值給變量,進(jìn)而執(zhí)行循環(huán)體中的代碼;直到讀取完可迭代對(duì)象的所有元素為止,不再循環(huán)。for循環(huán)語(yǔ)句的循環(huán)次數(shù)是確定的。運(yùn)行流程如圖所示:例:字符串“Python”是由“P”、“y”、“t”、“h”、“o”、“n”六個(gè)字符元素組成,使用for循環(huán)遍歷字符串“Python”,打印其字符元素:forcharin"Python":#遍歷字符串中的每一個(gè)數(shù)據(jù)元素,并賦值給變量charprint(char)#執(zhí)行打印操作例:列表也是可迭代對(duì)象,也可以采用類(lèi)似的方法遍歷列表,打印其中的元素。>>>list1=[1,-3,-4,7,-9,10]>>>foriinlist1:#遍歷列表中的每個(gè)數(shù)據(jù)元素并賦值給變量i print(i)#執(zhí)行打印操作例:在循環(huán)體中執(zhí)行更復(fù)雜的操作。求列表list1的元素絕對(duì)值并打印。#3_14_for循環(huán)語(yǔ)句示例(1).pylist=[1,-3,-4,7,-9,10]foriinlist:#遍歷列表中的每個(gè)數(shù)據(jù)元素,并賦值給變量iifi<0:#判斷i的取值是否為負(fù)數(shù)i=-i#i的取值為負(fù)數(shù)則轉(zhuǎn)變?yōu)檎龜?shù)print(i)#打印變量i的結(jié)果例:借助for循環(huán),求列表[1,2,3,4,5]的所有元素之和。#3_15_for循環(huán)語(yǔ)句示例(2).pytotal=0#定義存放累加結(jié)果的變量total,賦初始值為0list=[1,2,3,4,5]fornuminlist:#遍歷列表中的每個(gè)數(shù)據(jù)元素,并賦值給變量numtotal=total+num#累加求和print(total)#打印最終累加求和的結(jié)果如果求“1+2+3+4+...+99+100”的值,可以借助Python內(nèi)置的range()函數(shù),快速生成一個(gè)整數(shù)序列。>>>range(0,10)#生成一個(gè)0到9的整數(shù)數(shù)字序列:0123456789range(0,10)>>>range(10)#默認(rèn)情況下從0開(kāi)始生成數(shù)字序列,等價(jià)于range(0,10)range(0,10)>>>range(5,10)#生成一個(gè)5到9的序列:56789range(5,10)對(duì)于range(m,n)函數(shù)而言,其產(chǎn)生的數(shù)字序列為“m,m+1,m+2,...n-2,n-1”,并不包括尾數(shù)n。對(duì)于range()函數(shù)生成的序列,無(wú)法直接觀(guān)察其元素;但可以將for循環(huán)語(yǔ)句和range()函數(shù)結(jié)合使用,遍歷查看range()函數(shù)生成的數(shù)字序列,代碼如下:>>>foriinrange(1,5):#遍歷數(shù)字序列中的每個(gè)數(shù)據(jù)元素,并賦值給變量iprint(i)#執(zhí)行打印操作利用range()函數(shù),即可完成“1+2+3+4+...+99+100”的運(yùn)算。代碼如下:#3_16_for循環(huán)語(yǔ)句示例(3).pytotal=0#定義存放累加結(jié)果的變量total,賦初始值為0foriinrange(1,101):#遍歷1到100的數(shù)據(jù)序列total=total+i#累加求和print('1+2+3+...+100=',total)利用for循環(huán)語(yǔ)句編寫(xiě)猜數(shù)字小游戲,規(guī)則不變。代碼如下:#3_17_for循環(huán)語(yǔ)句示例(4).pykey=10#預(yù)先設(shè)定待猜測(cè)的數(shù)字foriinrange(5):#循環(huán)條件:i變量依次遍歷數(shù)字序列01234,表示共有5次猜數(shù)字機(jī)會(huì)guess=int(input("請(qǐng)輸入你猜測(cè)的數(shù)字:"))#用戶(hù)從鍵盤(pán)輸入猜測(cè)的數(shù)據(jù),并轉(zhuǎn)換為整型ifguess==key:#判斷用戶(hù)輸入的數(shù)字和預(yù)先設(shè)定的數(shù)字是否相等print("恭喜你,答對(duì)了!")elifguess<key:#判斷用戶(hù)輸入的數(shù)字是否小于預(yù)先設(shè)定的數(shù)字print("猜小了!")else:#用戶(hù)輸入的數(shù)字大于預(yù)先設(shè)定的數(shù)字,執(zhí)行else后面的語(yǔ)句print("猜大了!")3.2.3循環(huán)的嵌套循環(huán)語(yǔ)句嵌套,即一個(gè)循環(huán)體中,包含另外一個(gè)循環(huán)。例:有黃瓜、西紅柿、白菜、土豆、四季豆5種蔬菜,有牛肉、豬肉、雞肉3種肉類(lèi),任意搭配可以做出哪些一葷一素的菜肴?數(shù)學(xué)中的“排列組合”可以解決這一問(wèn)題:首先在5種蔬菜中依次選擇出一種蔬菜,接下來(lái)對(duì)于每種蔬菜,在3種肉類(lèi)中依次選擇出一種肉類(lèi)與之匹配,如圖所示:用Python程序模擬這一過(guò)程,需要兩層循環(huán)結(jié)構(gòu)。代碼如下:#3_18_循環(huán)的嵌套示例.pyvegetables=["黃瓜","西紅柿","白菜","土豆","四季豆"]meat=["牛肉","豬肉","雞肉"]foriinvegetables:#遍歷vegetables,每次取出一種蔬菜forjinmeat:#遍歷meat,每次取出一種肉類(lèi)print(i,"炒",j)【任務(wù)3.3循環(huán)的控制break/continue】【任務(wù)分析】在批量評(píng)審獎(jiǎng)學(xué)金過(guò)程中,也可以評(píng)定完一名同學(xué)后,詢(xún)問(wèn)評(píng)審員“是否繼續(xù)評(píng)定下一位?”,給予評(píng)審員更多的自主權(quán);若評(píng)審員決定“不繼續(xù)評(píng)定”,則程序停止;若評(píng)審員決定“繼續(xù)評(píng)定”,則繼續(xù)評(píng)審下一位同學(xué)的獎(jiǎng)學(xué)金等級(jí)。本項(xiàng)任務(wù)需要完成的具體工作如表所示:對(duì)于while循環(huán)和for循環(huán),在滿(mǎn)足循環(huán)條件的情況下會(huì)重復(fù)執(zhí)行循環(huán)體中的代碼,直到不滿(mǎn)足循環(huán)條件才終止。Python還提供了在滿(mǎn)足循環(huán)條件下,根據(jù)實(shí)際需要提前跳出循環(huán)的break和continue語(yǔ)句,從而使得循環(huán)結(jié)構(gòu)變得更加靈活。3.3.1break語(yǔ)句在循環(huán)執(zhí)行過(guò)程中,如需要中途強(qiáng)行跳出并結(jié)束循環(huán),可使用break語(yǔ)句。例:通過(guò)循環(huán)讓用戶(hù)不斷輸入喜歡的城市名字,并打印出相關(guān)信息,直到用戶(hù)輸入“quit“為止。代碼如下:#3_19_循環(huán)中使用break示例(1).pywhileTrue:#循環(huán)條件永遠(yuǎn)成立city=input('請(qǐng)輸入你喜歡城市名字(輸入quit退出程序):')ifcity=='quit':#如果用戶(hù)輸入“quit”break#使用break跳出循環(huán)體else:#只要用戶(hù)沒(méi)有輸入“quit”,打印相關(guān)信息,然后進(jìn)入下一輪循環(huán)print('我喜歡的城市:',city)使用for循環(huán)依次打印列表[2,4,6,8,9,10,12]中的元素,遇到奇數(shù)就停止打印。代碼如下:#3_20_循環(huán)中使用break示例(2).pylist1=[2,4,6,8,9,10,12]foriinlist1:#遍歷列表中的每個(gè)數(shù)據(jù)元素并賦值給變量iifi%2!=0:#判斷變量i是否為奇數(shù)break#變量i為奇數(shù)則跳出循環(huán)體,不再執(zhí)行剩余代碼pr
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度武漢房屋租賃合同糾紛處理辦法
- 二零二五年度足療店連鎖經(jīng)營(yíng)授權(quán)管理合同
- 二零二五年度能源消耗監(jiān)控系統(tǒng)維保及節(jié)能服務(wù)合同
- 二零二五年度羊群代放牧與綠色食品生產(chǎn)協(xié)議
- 普通高等學(xué)校就業(yè)協(xié)議書(shū)(2025年度)-金融服務(wù)業(yè)人才輸送協(xié)議
- 二零二五年度事業(yè)單位聘用合同崗位職責(zé)細(xì)化與職業(yè)發(fā)展規(guī)劃
- 2025年度順豐快遞員工作績(jī)效考核及反饋合同
- 二零二五年度環(huán)保工程項(xiàng)目保證金合同
- 學(xué)生會(huì)部長(zhǎng)發(fā)言稿
- 物業(yè)管理服務(wù)合同
- 《全科醫(yī)學(xué)概論》課件-以家庭為單位的健康照顧
- 醫(yī)院窗簾、隔簾采購(gòu) 投標(biāo)方案(技術(shù)方案)
- 控制計(jì)劃課件教材-2024年
- 自來(lái)水廠(chǎng)安全施工組織設(shè)計(jì)
- 川教版2024-2025學(xué)年六年級(jí)下冊(cè)信息技術(shù)全冊(cè)教案
- 《無(wú)人機(jī)測(cè)繪技術(shù)》項(xiàng)目1任務(wù)3無(wú)人機(jī)測(cè)繪基礎(chǔ)知識(shí)
- 招標(biāo)代理機(jī)構(gòu)遴選投標(biāo)方案(技術(shù)標(biāo))
- 彩鋼瓦雨棚施工技術(shù)標(biāo)準(zhǔn)方案
- 2024年新疆(兵團(tuán))公務(wù)員考試《行測(cè)》真題及答案解析
- KTV商務(wù)禮儀培訓(xùn)
- 三級(jí)安全教育試題(公司級(jí)、部門(mén)級(jí)、班組級(jí))
評(píng)論
0/150
提交評(píng)論