- Python入門很輕松(微課超值版)
- 云尚科技
- 1734字
- 2020-09-01 15:58:00
3.2 選擇結(jié)構(gòu)與語句

微視頻
條件判斷語句就是對語句中不同條件的值進(jìn)行判斷,進(jìn)而根據(jù)不同的條件執(zhí)行不同的語句。
3.2.1 最簡單的if語句
選擇結(jié)構(gòu)也稱為分支結(jié)構(gòu),用于處理在程序中出現(xiàn)兩條或更多執(zhí)行路徑可供選擇的情況。選擇結(jié)構(gòu)可以用分支語句來實(shí)現(xiàn)。分支語句主要為if語句。
if語句的格式如下:
if 表達(dá)式1: 語句
【例3.1】驗(yàn)證輸入的數(shù)是否可以整除2又能整除3(源代碼\ch03\3.1.py)。
print("請輸入既能整除2又能整除3的數(shù)") num= int(input("請輸入您認(rèn)為符合條件的數(shù): ")) if num%2==0 and num%2==0: print(num,"符合條件!")
程序運(yùn)行結(jié)果如圖3-4所示。

圖3-4 例3.1的程序運(yùn)行結(jié)果
☆大牛提醒☆
在if語句后面必須加上冒號,否則會產(chǎn)生語法錯誤。例如下面的代碼:
num=180 if num%2==0 and num%2==0 print(num,"符合條件!")
程序運(yùn)行后,產(chǎn)生的錯誤信息如圖3-5所示。

圖3-5 語法錯誤
☆經(jīng)驗(yàn)之談☆
使用if語句時,當(dāng)滿足條件后,還可以執(zhí)行多個語句。例如以下代碼:
num=180 if num%2==0 and num%2==0: print(num,"符合條件!") print("恭喜您答對了!")
3.2.2 if…else語句
if語句是使用非常普遍的條件選擇語句,每一種編程語言都有一種或多種形式的if語句,在編程中它是經(jīng)常被用到的。
if語句的格式如下:
if 表達(dá)式1: 語句1 elif 表達(dá)式2: 語句2 ... else: 語句n
若表達(dá)式1為真,則Python運(yùn)行語句1,反之則向下運(yùn)行。如果沒有條件為真,就運(yùn)行else內(nèi)的語句。elif與else語句都是可以省略的。可以在語句內(nèi)使用pass語句,表示不運(yùn)行任何動作。
☆大牛提醒☆
在使用if…else語句時,需要注意以下問題:
(1)每個條件后面要使用冒號(:),表示接下來是滿足條件后要執(zhí)行的語句塊。
(2)使用縮進(jìn)劃分語句塊,相同縮進(jìn)數(shù)的語句在一起組成一個語句塊。
(3)在Python中沒有switch…case語句。
【例3.2】計算輸入的兩個數(shù)的差值(源代碼\ch03\3.2.py)。
這里首先要判斷輸入的兩個數(shù)的大小,然后再去求差值。
a= int(input("請輸入第1個數(shù): ")) b=int(input("請輸入第2個數(shù): ")) if a<=b: print("它們的差值:",b-a) elif a>b: print ("它們的差值:",a-b)
程序運(yùn)行結(jié)果如圖3-6所示。

圖3-6 例3.2的程序運(yùn)行結(jié)果
該程序是一個選擇結(jié)構(gòu)的程序,在執(zhí)行過程中會按照鍵盤輸入值的大小順序選擇不同的語句執(zhí)行。若a>b,則執(zhí)行print("它們的差值:",b-a);若a<=b,則執(zhí)行print ("它們的差值:",a-b)。
☆大牛提醒☆
elif和else語句都不能單獨(dú)使用,必須配合if語句一起使用。
【例3.3】根據(jù)輸入的銷售額計算獎金(源代碼\ch03\3.3.py)。
這里模擬銷售獎金的發(fā)放過程。首先使用if語句實(shí)現(xiàn)多條件判斷,然后使用int()函數(shù)將輸入的內(nèi)容強(qiáng)制轉(zhuǎn)換為整數(shù)類型。
sales= int(input("請輸入本季度銷售額: ")) if sales <10000: print("本季度沒有獎金!") elif 10000 <= sales <300000: print("本季度的獎金為1萬元!") elif 300000 <= sales <1000000: print("本季度的獎金為3萬元!") else: print("本季度的獎金為5萬元!")
程序運(yùn)行結(jié)果如圖3-7所示。

圖3-7 例3.3的程序運(yùn)行結(jié)果
☆大牛提醒☆
使用if語句經(jīng)常犯的錯誤包括以下兩種。
(1)經(jīng)常錯把=和==混用,而且出現(xiàn)邏輯上的錯誤。“=”是賦值運(yùn)算符,“==”是關(guān)系運(yùn)算符的“等于號”,兩者是不同的,千萬不能混淆。例如:
if aa=120000: print("本季度的獎金為5萬元!")
(2)當(dāng)使用布爾型的變量作為判斷條件時,假設(shè)布爾型變量為aa,比較規(guī)范的格式如下:
if aa #表示為真 if not aa #表示為假
不符合規(guī)范的格式如下:
if aa==True #不符合規(guī)范 if aa==False #不符合規(guī)范
3.2.3 if嵌套
在嵌套if語句中,可以把if…elif…else結(jié)構(gòu)放在另外一個if…elif…else結(jié)構(gòu)中。該語法格式如下:
if 表達(dá)式1: 語句 if 表達(dá)式2: 語句 elif 表達(dá)式3: 語句 else 語句 elif 表達(dá)式4: 語句 else: 語句
【例3.4】判斷輸入的高考成績是否過了本科線(源代碼\ch03\3.4.py)。
print ("歡迎進(jìn)入高考分?jǐn)?shù)線查詢系統(tǒng)") num=int(input("請輸入您的高考分?jǐn)?shù):")) #獲取用戶輸入的分?jǐn)?shù),并轉(zhuǎn)換為整數(shù) if num<430: #分?jǐn)?shù)小于430,沒有過本科分?jǐn)?shù)線 print ("很遺憾,您沒有過本科線!") else: if 430<=num<530: #分?jǐn)?shù)大于或等于430而小于530,過本科二批分?jǐn)?shù)線 print ("恭喜!您已經(jīng)過本科二批分?jǐn)?shù)線!") else: #530,過本科一批分?jǐn)?shù)線 print ("恭喜!您已經(jīng)過本科一批分?jǐn)?shù)線!")
程序運(yùn)行結(jié)果如圖3-8所示。

圖3-8 例3.4的程序運(yùn)行結(jié)果
3.2.4 多重條件判斷
在Python編程中,經(jīng)常會遇到多重條件比較的情況。在多重條件比較時,需要用到and或or運(yùn)算符。其中,and運(yùn)算符用于多個條件同時滿足的情況;or運(yùn)算符用于只有一個條件滿足的情況。
【例3.5】多重條件判斷一個三角形(源代碼\ch03\3.5.py)。
a= int(input("請輸入三角形的第一條邊: ")) b= int(input("請輸入三角形的第二條邊: ")) c= int(input("請輸入三角形的第三條邊: ")) if a ==b and a ==c: print("等邊三角形") elif a==b or a==c or b==c: print("等腰三角形") elif a==b or a==c or b==c: print("等腰三角形") elif a*a+b*b==c*c or a*a+c*c==b*b or c*c+b*b==a*a : print("直角三角形") else: print("一般三角形")
程序運(yùn)行結(jié)果如圖3-9所示。

圖3-9 例3.5的程序運(yùn)行結(jié)果
- Java異步編程實(shí)戰(zhàn)
- CentOS 7 Server Deployment Cookbook
- Mastering Python Scripting for System Administrators
- Java虛擬機(jī)字節(jié)碼:從入門到實(shí)戰(zhàn)
- Advanced Oracle PL/SQL Developer's Guide(Second Edition)
- 微信小程序項目開發(fā)實(shí)戰(zhàn)
- Python圖形化編程(微課版)
- Rust游戲開發(fā)實(shí)戰(zhàn)
- Spring Data JPA從入門到精通
- Python第三方庫開發(fā)應(yīng)用實(shí)戰(zhàn)
- Android初級應(yīng)用開發(fā)
- SaaS攻略:入門、實(shí)戰(zhàn)與進(jìn)階
- Android開發(fā)進(jìn)階實(shí)戰(zhàn):拓展與提升
- Java核心技術(shù)速學(xué)版(第3版)
- Python人工智能項目實(shí)戰(zhàn)