《Python程序設(shè)計(jì)》課件第3章 Python語句流程結(jié)構(gòu)_第1頁
《Python程序設(shè)計(jì)》課件第3章 Python語句流程結(jié)構(gòu)_第2頁
《Python程序設(shè)計(jì)》課件第3章 Python語句流程結(jié)構(gòu)_第3頁
《Python程序設(shè)計(jì)》課件第3章 Python語句流程結(jié)構(gòu)_第4頁
《Python程序設(shè)計(jì)》課件第3章 Python語句流程結(jié)構(gòu)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Python程序設(shè)計(jì)第3章Python語句流程結(jié)構(gòu)【教學(xué)目標(biāo)】

學(xué)習(xí)內(nèi)容順序結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)技能目標(biāo)會(huì)使用輸入input()函數(shù)、輸出print()函數(shù)能對(duì)if的單分支、雙分支、多分支及嵌套語句熟練使用能對(duì)while循環(huán)語句、for語句、break語句和coutinue語句熟練使用會(huì)使用range()函數(shù)任務(wù)一喝酒不開車,開車不喝酒

喝酒不開車,開車不喝酒,這不僅僅是一句宣傳語,而是一種責(zé)任。車輛駕駛?cè)藛T血液中的酒精含量大于或等于20mg/100mL并且小于8mg/100mL時(shí)屬于酒后駕車,血液中的酒精含量大于或等于80mg/100mL為醉酒駕車??墒褂煤粑骄凭珯z測(cè)儀現(xiàn)場(chǎng)檢驗(yàn),由檢測(cè)儀打印出結(jié)果:酒后駕車,暫扣6個(gè)月駕駛證,并處1000以上2000元以下罰款,一次扣12分。醉酒駕車,罰款5000元,一次扣12分,處15日以下拘留,并且5年內(nèi)不得重新獲得駕照。本次的任務(wù)是使用Python程序?qū)崿F(xiàn)檢測(cè)儀的判斷與輸出功能(直接由鍵盤輸入血液中的酒精含量)。【提示】

該任務(wù)中涉及一個(gè)變量即血液中的酒精含量(mg/100ml),設(shè)為數(shù)字類型y,先從鍵盤輸入數(shù)據(jù)賦值給y,再判斷如果y<20,則輸出為“不是酒駕,請(qǐng)放行!”;如果判斷y大于或等于20且小于80,則輸出顯示為“酒后駕車:罰款1000~2000元,暫扣6個(gè)月駕駛證,一次扣12分!”;如果判斷y≥80,則輸出顯示為“醉酒駕車:罰款5000元,一次扣12分,處15日以下拘留,并且5年內(nèi)不得重新獲得駕照!”。3.1順序結(jié)構(gòu)程序設(shè)計(jì)3.1.1輸出函數(shù)print()

順序結(jié)構(gòu)是最簡(jiǎn)單的程序結(jié)構(gòu),是構(gòu)成復(fù)雜程序的基礎(chǔ),順序結(jié)構(gòu)程序由簡(jiǎn)單語句組成,語句按書寫順序執(zhí)行,且每條語句都被執(zhí)行

Python的基本輸出語句使用的是print()函數(shù),其基本語法如下。

print([obj1,obj2,...][,sep=""][,end="\n"][,file=sys.stdout])基本輸出中的數(shù)據(jù)對(duì)象(obj)可以是數(shù)值、字符串,也可以是列表、元組、字典或者是集合。輸出時(shí)會(huì)將逗號(hào)間的內(nèi)容用空格分隔開。。1.省略所有參數(shù)2.輸出一個(gè)或多個(gè)數(shù)據(jù)對(duì)象3.使用指定輸出分隔符4.指定輸出結(jié)尾符號(hào)5.輸出到文件3.1順序結(jié)構(gòu)程序設(shè)計(jì)3.1.2輸入函數(shù)input()

基本語法如下。

變量=input("提示字符串")其中,變量和提示字符串均可省略。input()函數(shù)將用戶輸入的內(nèi)容作為字符串返回。用戶按Enter鍵結(jié)束輸入,Enter鍵之前的全部字符均作為輸入內(nèi)容。指定變量時(shí),變量將保存輸入的字符串。3.2選擇結(jié)構(gòu)程序設(shè)計(jì)3.2.1if單分支語句

if語句單分支結(jié)構(gòu)的語法形式如下。

if條件表達(dá)式:語句/語句塊其中:(1)條件表達(dá)式可以是關(guān)系表達(dá)式、邏輯表達(dá)式、算術(shù)表達(dá)式等。(2)語句/語句塊可以是單個(gè)語句,也可以是多個(gè)語句。多個(gè)語句的縮進(jìn)必須對(duì)齊一致。(3)條件表達(dá)式的值為真(True)時(shí),執(zhí)行后面的語句(塊),否則不做任何操作,控制將轉(zhuǎn)到語句的結(jié)束點(diǎn)。

選擇結(jié)構(gòu)是根據(jù)條件來控制代碼執(zhí)行分支語句,選擇結(jié)構(gòu)也叫分支結(jié)構(gòu)。Python使用if語句來實(shí)現(xiàn)分支結(jié)構(gòu)。實(shí)例一輸入一個(gè)學(xué)生的兩門課程的考試成績(jī)(設(shè)為x1,x2),如果兩門成績(jī)均大于或等于60分,則輸出“pass”。x1=eval(input("請(qǐng)輸入第一門課程的考試成績(jī):"))x2=eval(input("請(qǐng)輸入第二門課程的考試成績(jī):"))ifx1>=60andx2>=60:print("pass")3.2選擇結(jié)構(gòu)程序設(shè)計(jì)3.2.2if雙分支語句

if語句雙分支結(jié)構(gòu)的語法形式如下。

if條件表達(dá)式:

語句/語句塊1else:

語句/語句塊2實(shí)例二提示用戶輸入密碼(key),如果正確(等于123),則顯示“密碼正確!”信息;否則,顯示“密碼錯(cuò)誤”信息。key=int(input("請(qǐng)輸入密碼:"))ifkey==123:print("密碼正確!")else:print("密碼錯(cuò)誤!")3.2選擇結(jié)構(gòu)程序設(shè)計(jì)3.2.3if多分支語句

if語句多分支結(jié)構(gòu)的語法形式如下。

if條件表達(dá)式1:

語句/語句塊1elif條件表達(dá)式2:

語句/語句塊2…elif條件表達(dá)式n:

語句/語句塊n[else:

語句/語句塊n+1]實(shí)例三根據(jù)用戶輸入的期未考試成績(jī)(如:mark),輸出相應(yīng)的成績(jī)?cè)u(píng)定信息。成績(jī)大于或等于90分輸出“優(yōu)”;成績(jī)大于或等于80分小于90分輸出“良”;成績(jī)大于或等于70分小于80分輸出“中”;成績(jī)大于或等于60分小于70分輸出“及格”;成績(jī)小于60分輸出“差”。mark=eval(input("請(qǐng)輸入分?jǐn)?shù):"))ifmark>=90:print("優(yōu)")elifmark>=80:print("良")elifmark>=70:print("中")elifmark>=60:print("及格")else:print("不及格"3.2選擇結(jié)構(gòu)程序設(shè)計(jì)3.2.4if語句嵌套

一般形式如下。

if條件表達(dá)式1: if條件表達(dá)式11: 語句/語句塊1else: 語句/語句塊2else: if條件表達(dá)式21: 語句/語句塊3else: 語句/語句塊4實(shí)例四任意輸入三個(gè)整數(shù),找出其中最大的數(shù)。a=int(input("請(qǐng)輸入第一個(gè)整數(shù):"))b=int(input("請(qǐng)輸入第二個(gè)整數(shù):"))c=int(input("請(qǐng)輸入第三個(gè)整數(shù):"))ifa>b:ifa>c:max=aelse:max=celse:ifb>c:max=belse:max=cprint("最大數(shù)為:",max)【任務(wù)實(shí)現(xiàn)】程序如下:y=eval(input("請(qǐng)輸入血液中的酒精含量(mg/100ml):"))ify<20:print("不是酒駕,請(qǐng)放行!")elify>=20andy<80:print("酒后駕車:罰款1000-2000元,暫扣6個(gè)月駕駛證,一次扣12分!")elify>=80:print("醉酒駕車:罰款5000元,一次扣12分,處15日以下拘留,并且5年內(nèi)不得重新獲得駕照!")任務(wù)二解密銀行卡

每個(gè)人都有多張銀行卡,有時(shí)候記不清密碼,在ATM機(jī)上連續(xù)輸入錯(cuò)誤3次后銀行卡就會(huì)鎖定,這時(shí)該怎么辦呢?其實(shí)這時(shí)持卡人帶上自己的有效證件前往銀行柜臺(tái),申請(qǐng)銀行卡解鎖和密碼重置,銀行會(huì)對(duì)信息審核,信息審核通過后當(dāng)場(chǎng)就可以申請(qǐng)密碼的重置。本次的任務(wù)是使用Python程序?qū)崿F(xiàn)銀行卡登錄功能,用戶輸入的密碼與設(shè)置好的密碼進(jìn)行對(duì)比,一致則輸出“歡迎進(jìn)入銀行系統(tǒng)!”,否則給第二、第三次輸入密碼機(jī)會(huì);如果用戶輸入了3次密碼都不一致,那么結(jié)束程序并顯示“很抱歉,你已經(jīng)退出系統(tǒng)!”?!咎崾尽?/p>

程序運(yùn)行后,首先進(jìn)入登錄界面。為了更好地與用戶進(jìn)行交互,可以利用輸出語句打印出登錄界面。接著提示用戶輸入密碼,將用戶的密碼與系統(tǒng)密碼進(jìn)行比對(duì),相等則表示密碼輸入正確,可進(jìn)入系統(tǒng)。如果用戶輸入的密碼不正確,則給第二、三次輸入密碼的機(jī)會(huì)??梢允褂醚h(huán)來實(shí)現(xiàn)此功能。3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

計(jì)算機(jī)可以按規(guī)定的條件,重復(fù)執(zhí)行某些操作。例如,要輸入全校學(xué)生成績(jī);求若干數(shù)之和等,這類問題都可以通過循環(huán)來實(shí)現(xiàn)。Python中的循環(huán)語句有while和for兩種形式。3.3.1while循環(huán)語句

基本格式如下。

while條件表達(dá)式:

循環(huán)體語句/語句塊以while開頭的那行代碼稱為循環(huán)的頭部,頭部中的條件表達(dá)式稱為循環(huán)的條件,代碼的縮進(jìn)塊稱為循環(huán)體,每執(zhí)行一次循環(huán)體稱為通過該循環(huán)的一輪。實(shí)例五利用while循環(huán)求1+2+3+…+100的累加總和、偶數(shù)的和、奇數(shù)的和。i=1;sum_all=0;sum_odd=0;sum_even=0whilei<=100:sum_all+=iifi%2==0:sum_even+=ielse:sum_odd+=ii+=1print("1+2+3+…+100的累加總和:",sum_all)print("1+2+3+…+100的偶數(shù)的和:",sum_even)print("1+2+3+…+100的奇數(shù)的和:",sum_odd)3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

for循環(huán)的基本格式如下。

for變量in序列:循環(huán)體語句/語句塊1[else:循環(huán)體語句/語句塊2]3.3.2for循環(huán)語句1.for語句輸出列表

fruits=['apple','orange','banana','grape']forfruitinfruits:print(fruit)程序輸出結(jié)果:appleorangebananagrape3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)3.3.2for循環(huán)語句2.for語句修改列表元素#把banana改為applefruits=['apple','orange','banana','grape']foriinrange(len(fruits)):iffruits[i]=='banana':fruits[i]='apple'print(fruits)程序輸出結(jié)果:['apple','orange','apple','grape']3.for語句刪除列表元素#把列表中banana刪除fruits=['apple','orange','banana','grape']foriinfruits:ifi=='banana':fruits.remove(i)print(fruits)程序輸出結(jié)果:['apple','orange','grape']3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)3.3.2for循環(huán)語句4.統(tǒng)計(jì)列表元素#統(tǒng)計(jì)apple的個(gè)數(shù)fruits=['apple','orange','banana','grape','apple']count=0foriinfruits:ifi=='apple':count+=1print("fruits列表中apple的個(gè)數(shù)="+str(count)+"個(gè)")程序輸出結(jié)果:fruits列表中apple的個(gè)數(shù)=2個(gè)3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

Python內(nèi)置range()函數(shù)能返回一系列連續(xù)增加的整數(shù),range()函數(shù)大多數(shù)出現(xiàn)在for循環(huán)中作為索引使用,range()函數(shù)的一般形式是。

range(start,end[,step])參數(shù)含義如下。start:計(jì)數(shù)從start開始,默認(rèn)是從0開始,如range(5)等價(jià)于range(0,5)。end:計(jì)數(shù)到end結(jié)束,但不包括end,如range(0,5)是[0,1,2,3,4]沒有5。step:每次跳躍的間距,默認(rèn)為1,如range(0,5)等價(jià)于range(0,5,1)。3.3.3range()函數(shù)實(shí)例六利用for循環(huán)求1+2+3+…+100的累加總和、偶數(shù)的和、奇數(shù)的和。i=1;sum_all=0;sum_odd=0;sum_even=0foriinrange(1,101):sum_all+=iifi%2==0:sum_even+=ielse:sum_odd+=iprint("1+2+3+…+100的累加總和:",sum_all)print("1+2+3+…+100的偶數(shù)的和:",sum_even)print("1+2+3+…+100的奇數(shù)的和:",sum_odd)實(shí)例七輸出所有的“水仙花數(shù)”。所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如,153是一個(gè)水仙花數(shù),因?yàn)?53=13+53+33。實(shí)現(xiàn)思路:如何從一個(gè)三位數(shù)中提取各位數(shù)字是關(guān)鍵。這里借助%(取模-返回除法的余數(shù))和//(取整除-返回商的整數(shù)部分)來完成。foriinrange(100,1000):a=i%10 #個(gè)位數(shù)b=i//10%10 #十位數(shù)c=i//100#百位數(shù)if(i==a**3+b**3+c**3):print(i)3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)for循環(huán)嵌套的基本格式如下。

for變量in序列:for變量in序列:循環(huán)體語句/語句塊1循環(huán)體語句/語句塊2while循環(huán)嵌套的基本格式如下。

while表達(dá)式:while表達(dá)式:循環(huán)體語句/語句塊1循環(huán)體語句/語句塊23.3.4循環(huán)嵌套實(shí)例八使用for語句嵌套輸出九九乘法表。foriinrange(1,10):forjinrange(1,i+1):print(“%d*%d=%d﹨t"%(j,i,j*i),end="")print()實(shí)例九使用while語句嵌套輸出九九乘法表。i=1whilei<10:j=1whilej<=i:print("%d*%d=%d﹨t"%(j,i,j*i),end="")j+=1i+=1print()3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

break語句用于退出for或while循環(huán),即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)語句的后繼語句。3.3.5break語句實(shí)例十使用break語句終止循環(huán)。forletterin"Python":ifletter=='h':breakprint("當(dāng)前字母是:",letter)3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

continue語句類似于break語句,也在for或while循環(huán)中使用。但它只結(jié)束本次循環(huán)即跳過循環(huán)體內(nèi)自continue語句后尚未執(zhí)行的語句,返回到循環(huán)的起始處,并根據(jù)循環(huán)條件判斷是否執(zhí)行下一次循環(huán)。3.3.6coutinue語句實(shí)例十一輸入若干學(xué)生成績(jī),如果輸入Q結(jié)束輸入,如果成績(jī)小于0,則重新輸入。最后統(tǒng)計(jì)并輸出學(xué)生人數(shù)和平均成績(jī)。num=0;scores=0#初始化學(xué)生人數(shù)和成績(jī)whileTrue:s=input("請(qǐng)輸人學(xué)生成績(jī)(按Q結(jié)束):")ifs.upper()=='Q':breakiffloat(s)<0:#成績(jī)必須>=0continuenum+=1#

溫馨提示

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