Python程序開發基礎 課件 項目3 活學活用流程控制_第1頁
Python程序開發基礎 課件 項目3 活學活用流程控制_第2頁
Python程序開發基礎 課件 項目3 活學活用流程控制_第3頁
Python程序開發基礎 課件 項目3 活學活用流程控制_第4頁
Python程序開發基礎 課件 項目3 活學活用流程控制_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目3活學活用流程控制項目內容設計猜數游戲換算體重設計逢7拍手游戲根據BMI值確定健康狀況01020403項目目標知識目標熟悉順序結構的語法格式及功能熟悉選擇結構的語法格式及功能熟悉循環結構的語法格式及功能了解跳轉語句的語法格式及功能會使用順序結構解決實際問題會使用選擇結構解決實際問題會使用循環結構解決實際問題會靈活使用跳轉語句解決實際問題技能目標

換算體重01思考:什么是流程控制?程序中的語句默認自上而下順序執行(順序結構)。流程控制意指在程序執行過程中,通過一些特定的指令更改程序中語句的執行順序,使程序產生跳躍(分支結構)、回溯(循環結構)等現象。什么是IPO程序控制?IPO是一種程序編寫方法。在進行程序設計時,無論程序的規模如何,每個程序都有統一的運算模式:輸入數據(Input)、處理數據(Process)、輸出數據(Output)),這種樸素的運算模式即IPO。IPO程序控制

輸入(Input)是一個程序的開始。程序要處理的數據有多種來源,形成了多種輸入方式,包括:文件輸入、網絡輸入、控制臺輸入、交互界面輸出、隨機數據輸入、內部參數輸入等。

處理(Process)是程序對輸入數據進行計算產生輸出結果的過程。計算問題的處理方法統稱為“算法”,它是程序最重要的組成部分。可以說,算法是一個程序的靈魂。

輸出(Output)是程序展示運算成果的方式。程序的輸出方式包括:控制臺輸出、圖形輸出、文件輸出、網絡輸出、操作系統內部變量輸出等。順序結構

程序中的語句默認自上而下順序執行,即順序結構。

順序結構是計算機程序中最簡單最基本的結構。在順序結構中,編譯/解釋系統要求順序地執行且必須執行有先后順序排列的每一個最基本的處理單位,常用的順序排列就是IPO程序控制流程。順序結構實例1:

已知三角形三邊長度分別為a、b、c,其半周長為peri,根據海倫公式計算三角形面積area。

三角形半周長和三角形面積公式分別如下:三角形半周長peri=(a+b+c)/2三角形面積area=(peri*(peri-x)*(peri-y)*(peri-z))**0.5本例子要求編寫程序,實現接收用戶輸入的三角形邊長,計算三角形面積的功能。

本實例是典型的順序結構。通過使用Python常用運算符,按照順序結構要求進行語句書寫來編寫程序。根據海倫公式計算三角形面積時,需要先獲取三角形各邊的邊長,然后計算三角形的半周長,通過三角形的半周長與邊長計算三角形面積。a=eval(input('邊長a='))b=eval(input('邊長b='))c=eval(input('邊長c='))#計算半周長peri=(a+b+c)/2#計算面積area=(peri*(peri-a)*(peri-b)*(peri-c))**0.5print('三角形面積s=%0.1f'%area)任務實踐-換算體重

加快建設航天強國是黨的二十大建設現代化強國部署之一。2003年10月我國實現了載人航天,經過二十年的發展,我國已實現登上月球的夢想。眾所周知,月球上物體的體重是在地球上的16.5%,假設你在地球上的體重是65kg,試想你在月球上的體重會是多少?是否發生傳說的失重現象?請編寫程序驗證。

根據題意,計算在月球上的體重前需要使用input()函數輸入在地球上的體重。由于體重是數字類型,所以在程序中需要使用數字類型表示體重。根據月球上物體的體重是在地球上的16.5%來計算月球上的體重,例如,地球上體重為65kg,那么月球上的體重為65*16.5/100。任務實踐-換算體重#獲取月球上的體重mwew=float(input(“請輸入你的體重(kg):”))mw=ew*16.5/100print(‘如果在地球上的體重是{}kg,那么在月球上的體重將是{:.1f}’.format(ew,mw))根據BMI確定健康狀況02選擇結構

程序開發中經常會用到條件判斷,譬如,用戶登錄時需判斷用戶名和密碼是否全部正確,進而決定用戶是否能夠成功登錄。類似這種需求的功能,都可以使用選擇結構實現。選擇結構是通過if語句實現的,if語句是最簡單的條件判斷語句,可以控制程序執行的流程。if語句可使程序產生分支,根據分支數量的不同,if語句分為單分支(if)、雙分支(if-else)和多分支(if-elif-else)語句。if語句由if關鍵字、條件表達式和代碼塊三部分組成,它根據條件表達式的判斷結果選擇是否執行相應的代碼塊。單分支if語句單分支if語句產生一個分支,根據條件成立否決定是否執行代碼塊。

格式:if條件表達式:

代碼塊單分支if語句實例2:從鍵盤輸入一個數,輸出其絕對值。

x=float(input('請輸入一個數:'))y=xifx<0:y=-xprint('{}的絕對值是{}'.format(x,y))實例3:判斷4位回文數。所謂回文數,就是各位數字從高位到低位正序排列和從低位到高位逆序排列都是同一數值的數。例如,數字1221按正序和逆序排列都是1221,因此1221就是一個回文數;而數字1234的各位數字按逆序排列是4321,4321與1234不是同一個數,因此1234就不是一個回文數。本實例要求編寫程序,判斷輸入的4位整數是否是回文數。num=int(input("請輸入一個4位數:"))flag="不是回文數"sig=int(num//1000)ten=int(num//100%10)hud=int(num//10%10)ths=int(num%10)order=ths*1000+hud*100+ten*10+sigifnum==order:flag="是回文數"print(flag)單分支if語句雙分支if-else語句if-else語句產生兩個分支,可根據條件表達式的判斷結果選擇執行哪一個分支。if條件表達式:

代碼塊1else:

代碼塊2實例4:確定水仙花數。

水仙花數是一個3位數,它的每位數字的3次冪之和等于它本身,例如,153、370就是一個水仙花數。

num=int(input(“請輸入一個三位整數:"))hund=int(num//100)#百位ten=int(num//10%10)#十位single=int(num%10)#個位ifhund**3+ten**3+single**3==num:print(f"{num}是水仙花數")else:print(f"{num}不是水仙花數")雙分支if-else語句多分支if-elif-else語句如果程序需要處理多種情況,可以使用if-elif-else語句。if條件表達式1:

代碼塊1elif條件表達式2:

代碼塊2elif條件表達式3:

代碼塊3elif條件表達式n-1:

代碼塊n-1else:

代碼塊n多分支if-elif-else語句實例5:獎金發放。假設某銷售公司為激發員工的工作積極性,年終會根據員工為公司創造的利潤發放銷售獎金,獎金發放規則如下:

利潤(萬元)獎金提成(%)I<=101%10<I<=203%20<I<=405%40<I<=6010%60<I<=8015%I>8020%profit=float(input(“請輸入當月利潤,單位為萬元:"))ifprofit<=10:bonus=profit*0.01elifprofit<=20:bonus=profit*0.03elifprofit<=40:bonus=profit*0.05elifprofit<=60:bonus=profit*0.1elifprofit<=80:bonus=profit*0.15else:bonus=profit*0.20print('當月應發放獎金總數為%.2f元'%bonus*10000)多分支if-elif-else語句實例6:模擬下載操作。在網上下載文件時,經常會跳出一個提示窗口,詢問用戶是否執行下載操作,此時若用戶選擇“y”或“Y”便會執行下載任務,若選擇“n”或“N”便會退出下載任務。select=input('是否需要下載?(y/n):')ifselect=='y'orselect=='Y':print('----正在請求下載----')elifselect=='n'orselect=='N':print('----3秒后將返回首頁----’)else:print('輸入有誤,請重新選擇')If嵌套if語句嵌套指的是if語句內部包含if語句,其格式如下:if條件表達式1:if條件:

代碼塊1if條件表達式2:

代碼塊2關于if嵌套語句,需要說明:(1)if語句可以嵌套多層,不僅限于兩層。(2)外層和內層的if判斷都可以使用if語句、if-else語句和elif語句。多分支if-elif-else語句實例7:快遞計費系統。假設某快遞網點提供華東地區、華南地區、華北地區、西北地區的寄件服務,其中,華東地區編號為01、華南地區編號為02、華北地區編號為03,西北地區編號為04,該快遞網點的寄件價目表如下:地區編號首重(<=2kg)續重(元/kg)華東地區(01)10元2元華南地區(02)12元3元華北地區(03)14元2元西北地區(04)16元3元weight=float(input("請輸入快遞重量:"))print('編號01:華東地區編號02:華南地區編號03:華北地區編號04:西北地區')place=input("請輸入地區編號:")ifweight<=2:ifplace=='01':print('快遞費為10元')elifplace=='02':print('快遞費12元')elifplace=='03':print('快遞費14元')elifplace=='04':print('快遞費16元')else:excess_weight=weight-2ifplace=='01':many=excess_weight*2+10print('快遞費為%.1f元'%many)elifplace=='02':many=excess_weight*3+12print('快遞費為%.1f元'%many)elifplace=='03':many=excess_weight*2+14print('快遞費為%.1f元'%many)elifplace=='04':many=excess_weight*3+16print('快遞費為%.1f元'%many)多分支if-elif-else語句實例8:腦力大亂斗”休閑益智游戲的關卡中,有一個題目是從三個數中找出最大數。游戲中的“最大數”指的是外表的大小,而不是數值的大小。num_one=int(input(“請輸入第一個數:"))num_two=int(input(“請輸入第二個數:"))num_three=int(input(“請輸入第三個數:"))ifnum_one>num_two:ifnum_one>num_three:print(‘最大數是:’,num_one)else:print(‘最大數是:’,num_three)else:ifnum_two>num_three:print(‘最大數是:’,num_two)else:print(‘最大數是:’,num_three)任務實踐-根據BMI值確定健康狀況

BMI又稱為身體質量指數,它是國際上常用的衡量人體胖瘦程度以及是否健康的一個標準。

本任務要求編寫程序,實現“根據BMI確定健康狀況”判定。

根據題意,首先獲取體重和身高,然后根據BMI公式計算其BMI的值。身體質量指數(BMI)=體重(kg)÷身高2height=float(input('請輸入您的身高(m):'))weight=float(input('請輸入您的體重(kg):'))BMI=weight/(height*height)print('您的BMI值為%.2f'%BMI)ifBMI<18.5:print('體重過輕')elif18.5<=BMI<=23.9:print('體重正常')elif24<=BMI<=27:print('體重過重')elif28<=BMI<=32:print('體重肥胖')else:print('非常肥胖')設計逢7拍手游戲03循環結構

Python中的循環結構可以實現重復執行某個計算的功能,它包含while循環結構和for循環結構兩種類型。While循環while循環是一個條件循環語句,當條件滿足時重復執行代碼塊,直到條件不滿足為止。格式:while條件表達式:

代碼塊While語句首先判斷條件表達式的結果是否為True,若結果為True執行while循環中的代碼塊,然后再次判斷條件表達式的結果是否為True,若結果仍為True,則再次執行代碼塊...直至條件表達式的結果為False時結束循環。while語句實例9:檢測登錄系統賬號。登錄系統一般具有賬號和密碼檢測功能,即檢測用戶輸入的賬號和密碼是否正確。若用戶輸入的賬號或密碼不正確,系統就會提示“用戶名或密碼錯誤”和“您還有*次機會”;若用戶輸入的賬號和密碼正確,系統就會提示“登錄成功”;若輸入的賬號和密碼錯誤次數超過3次,系統就會提示“輸入錯誤次數過多,請稍后再試”。

本實例要求編寫程序,模擬登錄系統賬號及密碼檢測功能,并限制賬號或密碼輸錯的次數最多為3次。

while語句count=0 #用于記錄用戶錯誤次數whilecount<3:user=input("請輸入您的賬號:")pwd=input("請輸入您的密碼:")ifuser=='admin'andpwd=='123': #進行賬號密碼比對print('登錄成功')breakelse:print("用戶名或密碼錯誤")count+=1 #初始變量值自增1ifcount==3: #如果錯誤次數達到3次,則提示并退出print("輸入錯誤次數過多,請稍后再試")else:print(f"您還有{3-count}次機會") #顯示剩余次數請輸入您的賬號:admin請輸入您的密碼:123登錄成功for語句for循環可以對可迭代對象(序列)進行遍歷。for臨時變量in可迭代對象:

執行語句1

執行語句2......可迭代對象可以使字符串、列表、元組、集合、字典。for語句for循環常與range()函數搭配使用,生成一個數字序列,以控制循環中代碼段的執行次數。range()函數在for循環中的語法格式如下。foriinrange(strat,end,scan):

循環語句塊

這里,start:計數初值,默認值為0,例如range(3)等價于ange(0,3)。end:計數終值,但不包括end值,例如range(0,3)是指[0,1,2]區間,不包括3。scan:計數步長,即計數增量,默認值為1,例如range(0,3,1)等價于range(3)。for語句

實例10:數據加密。數據加密是保存數據的一種方法,通過加密算法和密鑰將數據從明文轉換為密文。假設在當前開發的程序中需要對用戶的密碼進行加密處理,已知用戶的密碼為6位數字,其加密規則如下。●獲取每個數字的ASCII值。●將所有數字的ASCII值進行累加求和。●將每個數字對應的ASCII值按從前往后的順序進行拼接,并將拼接后的結果進行反轉。●將反轉的結果與前面累加的結果相加,所得的結果即為加密后的密碼。本實例要求編寫程序,按照上述加密規則將用戶輸入的密碼進行加密,并輸出加密后的密碼。for語句pwd=input('請輸入密碼:')num_asc=0 #ASCII累加值初值為0str_pwd='' #ASCII拼接值初值為空forwinpwd:asc_val=ord(w) #獲取每個元素的ASCII值num_asc+=asc_val #對遍歷的ASCII值進行累加操作str_pwd+=str(asc_val) #對獲取的碼值進行拼接操作

reversal_num=str_pwd[::-1] #將拼接的ASCII值進行倒序排列encryption_num=int(reversal_num)+num_asc#倒序結果與累加值相加print(f"加密后的密碼為:{encryption_num}")for語句

實例11:登錄系統賬號檢測。本實例要求利用for循環編寫程序,在3次機會中模擬登錄系統賬號和密碼的檢測功能。forcountinrange(3):user=input("請輸入您的賬號:")pwd=input("請輸入您的密碼:")ifuser=='admin'andpwd=='123': #進行賬號密碼比對print('登錄成功')breakelse:print("用戶名或密碼錯誤")if3-count-1!=0:print(f"您還有{3-count-1}次機會") #顯示剩余次數else:print("輸入錯誤次數過多,請稍后再試")循環嵌套循環之間可以互相嵌套,進而實現更為復雜的邏輯。循環嵌套按不同的循環語句可以劃分為while循環嵌套和for循環嵌套。1。while循環嵌套while循環中可以嵌套while循環。while條件表達式1:

代碼塊1......while條件表達式2:

代碼塊2 ......for循環也可以嵌套使用,其格式如下。for臨時變量in可迭代對象:

代碼塊1for臨時變量in可迭代對象:

代碼塊22。for循環嵌套循環嵌套

實例12:乘法口訣是中國古代籌算中進行乘法、除法、開方等運算的基本計算規則,沿用至今已有兩千多年。試編程打印。foriinrange(1,10):forjinrange(1,i+1):print(str(j)+"*"+str(i)+"="+str(i*j),end="\t")print('')任務實踐-設計逢7拍手游戲

逢7拍手游戲的規則是:從1開始順序數數,數到有7或者包含7的倍數的時候拍手。

本任務要求編寫程序,實現“逢七拍手”游戲,輸出100以內需要拍手的數字。

根據題意,判斷一個數字是否與7相關,可分為以下兩種情況:是否為7的倍數,即一個數取模值為0;是否包含7,使用find()方法判斷,當返回值為-1時表示不包含7。任務實踐-設計逢7拍手游戲#本題是模擬逢7拍手游戲foriinrange(1,101):#把i轉成字符串,使用find方法(字符串中不包含時,返回-1)include=str(i).find("7")#判斷條件:既不包含7,也不是7的倍數ifinclude==-1andint(i)%7!=0:#輸出,換行符改為頓號print(i,end="、")#如果包含7輸出拍手符號星號*elifinclude!=-1orint(i)%7==0:print("*",end='、')

設計猜數游戲04跳轉語句

循環結構一般會執行完所有的情況后自然結束,但有些情況下需要跳出循環,這就需要使用跳轉語句。

python的跳轉語句有兩個,一個是break語句,用于跳出離它最近一級的循環,通常與if語句結合使用。另一個是continue語句,用于跳出當前循環,繼續執行下一次循環。跳轉語句可以改變循環結構的執行流程。break語句break語句可用于結束當前整個循環,它跳出離它最近一級的循環,通常與if語句結合使用,放在if語句代碼塊中。for臨時變量in可迭代對象:

執行語句if條件表達式:

代碼塊break其格式如下:while條件表達式:

代碼塊if條件表達式:

代碼塊breakcontinue語句continue語句用于跳出當前循環,繼續執行下一次循環。forelementin[0,-2,5,7,-10]:ifelement<=0:continueprint(element)Python中的pass語句是空語句,它是為了保持程序結構的完整性。pass語句不做任何事情,一般用作占位語句。跳轉語句實例13:編程判斷一個整數是否為素數。

n=int(input('輸入一個非負整數:'))flag=1foriinrange(2,n):if(n%i==0):flag=0breakifflag==1:print('%d是素數'%n)else:print('%d不是素數'%n)跳轉語句實例14:統計晚會參加人數。班級舉行元旦晚會,要求每位嘉賓在進門時按任意鍵一次(空格鍵除外),終止進場時輸入空格鍵。晚會結束后,舉辦方希望查看晚會參加人數,試編程實現。

本實例通過循環結構和選擇結構配合break跳轉語句實現統計參加晚會的人數的功能。n=0code=input('請輸入一個字符')whileTrue:ifcode=='':breakelse:n+=1code=input('請輸入一個字符')print(f'參加晚會的人數是{n}')跳轉語句實例15:統計被3整除的數。本實例是統計10~20的整數中能被3整除的數有幾個?并輸出其中每個整數是否被3整除。

sum=0foriinrange(10,21):ifi%3!=0:print(f'{i}不能被3整除')continueprint(f'{i}能被3整除')sum+=1print(f'10-20之間的整數能被3整除的數共有{sum}個')任務實踐-設計猜數游戲

猜數游戲是一個古老的密碼破譯類、益智類小游戲,通常由兩個人參與,一個人設置一個數字,一個人猜數字,當猜數的人說出一個數字,由出數字的人告知是否猜中:若猜測的數字大于設置的數字,出數字的人提示“很遺憾,你猜大了”;若猜測的數字小于設置的數字時,出數字的人提示“很遺憾,你猜

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論