Python語言程序設計(第2版) 課件 第3章 選擇結構_第1頁
Python語言程序設計(第2版) 課件 第3章 選擇結構_第2頁
Python語言程序設計(第2版) 課件 第3章 選擇結構_第3頁
Python語言程序設計(第2版) 課件 第3章 選擇結構_第4頁
Python語言程序設計(第2版) 課件 第3章 選擇結構_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章選擇結構條件的描述選擇結構的實現(xiàn)條件運算選擇結構程序舉例3.1.1關系運算Python的關系運算符有:<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、!=(不等于)關系運算符用于兩個量的比較判斷。由關系運算符將兩個表達式連接起來的式子就稱為關系表達式,它用來表示條件,其一般格式為:表達式1關系運算符表達式2例如,i+j==k,a<b+c。3.1條件的描述3.1.2邏輯運算1.邏輯運算符Python的邏輯運算符有:and(邏輯與)、or(邏輯或)、not(邏輯非)其中and和or運算符要求有兩個運算量,用于連接兩個條件,構成更復雜的條件。not運算符只作用于后面的一個邏輯量。2.邏輯表達式邏輯表達式是用邏輯運算符將邏輯量連接起來的式子。除not以外,and和or構成的邏輯表達式一般形式為:P邏輯運算符Q其中P,Q是兩個邏輯量。例寫出下列條件。(1)判斷年份year是否為閏年。(2)判斷ch是否為小寫字母。(3)判斷m能否被n整除。(4)判斷ch既不是字母也不是數(shù)字字符。條件1:(year%4==0andyear%100!=0)oryear%400==0條件2:ch>='a'andch<='z'條件3:m%n==0或m-m/n*n==0條件4:not((ch>='A'andch<='Z')or(ch>='a'andch<='z')or(ch>='0'andch<='9'))3.邏輯運算的重要規(guī)則邏輯與(and)和邏輯或(or)運算分別有如下性質(zhì):(1)aandb:當a為False時,不管b為何值,結果為False。(2)aorb:當a為True時,不管b為何值,結果為True。對于aandb,當a的可解釋為False,則表達式值為False,否則表達式的值為b;對于aorb,如果a為False,則表達式的值為b,否則表達式值為True。3.1.3測試運算1.成員測試in運算符用于在指定的序列中查找某個值是否存在,存在返回True,否則返回False。該運算符的使用格式是xiny,如果x在y序列中則返回True,否則返回False。例如:>>>3in(20,15,3,14,5)True“notin”的含義是,如果在指定的序列中沒有找到值,則返回True,否則返回False。對于xnotiny,如果x不在y序列中返回True,否則返回False。例如:>>>3notin(20,15,3,14,5)False2.身份測試身份運算符用于測試兩個變量是否指向同一個對象。例如:>>>a=20>>>b=20>>>aisbTrue>>>aisnotbFalse3.2.1單分支選擇結構可以用if語句實現(xiàn)單分支選擇結構,其一般格式為:if表達式:語句塊3.2選擇結構的實現(xiàn)單分支if語句的執(zhí)行過程注意:(1)在if語句的表達式后面必須加冒號。(2)因為Python把非0當作真,0當作假,所以表示條件的表達式不一定必須是結果為True或False的關系表達式或邏輯表達式,可以是任意表達式。(3)if語句中的語句塊必須向右縮進,語句塊可以是單個語句,也可以是多個語句。當包含兩個或兩個以上的語句時,語句必須縮進一致,即語句塊中的語句必須上下對齊。(4)如果語句塊中只有一條語句,if語句也可以寫在同一行上。例3-2輸入兩個整數(shù)a和b,先輸出較大數(shù),再輸出較小數(shù)。分析:輸入a,b,如果a<b,則交換a和b,否則不交換,最后輸出a,b。程序如下:a,b=eval(input("輸入a,b:"))ifa<b:#若a<b,交換a和b,否則不交換a,b=b,aprint(f"{a},")3.2.2雙分支選擇結構可以用if語句實現(xiàn)雙分支選擇結構,其一般格式為:if表達式:語句塊1else:語句塊2雙分支if語句的執(zhí)行過程例輸入三角形的三個邊長,求三角形的面積。分析:設a,b,c表示三角形的三個邊長,則構成三角形的充分必要條件是任意兩邊之和大于第三邊,即a+b>c,b+c>a,c+a>b。如果該條件滿足,則可按照海倫公式計算三角形的面積:其中p=(a+b+c)/2。frommathimport*a,b,c=eval(input("a,b,c="))ifa+b>canda+c>bandb+c>a:p=(a+b+c)/2s=sqrt(p*(p-a)*(p-b)*(p-c))print(f"a={a},b=,c={c}")print(f"area={s}")else:print(f"a={a},b=,c={c}")print("inputdataerror")例輸入x,求對應的函數(shù)值y。分析:這是一個具有兩個分支的分段函數(shù),為了求函數(shù)值,可以采用雙分支結構來實現(xiàn)。frommathimport*x=eval(input("x="))ifx<0:y=log(-5*x)+fabs(x)else:y=sin(x)+sqrt(x+exp(2))/(2*pi)print(f"x={x},y={y}")還可以采用兩個單分支結構來實現(xiàn),程序如下:frommathimport*x=eval(input("x="))ifx<0:y=log(-5*x)+fabs(x)ifx>=0:y=sin(x)+sqrt(x+exp(2))/(2*pi)print(f"x={x},y={y}")第一個if語句能否不寫,并分析原因。第二個if語句能否不用,并分析原因。3.2.3多分支選擇結構多分支if語句的一般格式為:if表達式1:

語句塊1elif表達式2:語句塊2elif表達式3:語句塊3……elif表達式m:語句塊m[else:語句塊n]多分支if選擇結構的執(zhí)行過程例輸入學生的成績,根據(jù)成績進行分類,85以上為優(yōu)秀,70~84為良好,60~69為及格,60以下為不及格。分析:將學生成績分為四個分數(shù)段,然后根據(jù)各分數(shù)段的成績,輸出不同的等級。程序分為四個分支,可以用四個單分支結構實現(xiàn),也可以用多分支if語句實現(xiàn)。程序如下:g=float(input("請輸入學生成績:"))ifg<60:print("不及格")elifg<70:print("及格")elifg<85:print("良好")else:print("優(yōu)秀")語句二:if表達式1:if表達式2:語句塊1else:語句塊23.2.4選擇結構的嵌套if語句中可以再嵌套if語句,例如,有以下不同形式的嵌套結構。語句一:if表達式1:if表達式2:語句塊1else:語句塊2Python的條件運算有三個運算量,其一般格式為:表達式1if表達式else表達式2條件運算的運算規(guī)則是,先求if后面表達式的值,如果其值為True,則求表達式1,并以表達式1的值為條件運算的結果。如果if后面表達式的值為False,則求表達式2,并以表達式2的值為條件運算的結果。例如,z=xifx>yelsey。3.3條件運算例生成3個兩位隨機整數(shù),輸出其中最大的數(shù)。這里用條件運算表達式來實現(xiàn),程序如下:importrandomx=random.randint(10,99)y=random.randint(10,99)z=random.randint(10,99)max=xifx>yelseymax=maxifmax>zelsezprint(f"x={x},y={y},z={z}".format(x,y,z))print(f"max={max}")例輸入一個整數(shù),判斷它是否為水仙花數(shù)。所謂水仙花數(shù),是指這樣的一些三位整數(shù):各位數(shù)字的立方和等于該數(shù)本身,例如153=13+53+33,因此153是水仙花數(shù)。分析:關鍵的一步是先分別求三位整數(shù)個位、十位、百位數(shù)字,再根據(jù)條件判斷該數(shù)是否為水仙花數(shù)。3.4選擇結構程序舉例例輸入一個時間(小時:分鐘:秒),輸出該時間經(jīng)過5分30秒后的時間。例硅谷公司員工的工資計算方法如下:(1)工作時數(shù)超過120小時者,超過部分加發(fā)15%。(2)工作時數(shù)低于60小時者,扣發(fā)700元。(3)其余按每小時84元計發(fā)。輸入員工的工號和該員工的工作時數(shù),計算應發(fā)工資。分析:為了計算應發(fā)工資,首先分兩種情況,即工時數(shù)小于等于120小時和大于120小時。工時數(shù)超過120小時時,實發(fā)工資有規(guī)定的計算方法。而工時數(shù)小于等于120小時時,又分為大于60和小于等于60兩種情況,分別有不同的計算方法。所以程序分為3個分支,即工時數(shù)>120

溫馨提示

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

評論

0/150

提交評論