官术网_书友最值得收藏!

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é)果

主站蜘蛛池模板: 高雄县| 无为县| 上思县| 吴忠市| 奉贤区| 且末县| 罗甸县| 丰镇市| 台中市| 桐梓县| 黄浦区| 武鸣县| 南华县| 永吉县| 瑞昌市| 基隆市| 黄山市| 黎川县| 县级市| 年辖:市辖区| 长垣县| 三亚市| 开江县| 佛山市| 怀集县| 忻城县| 广元市| 香河县| 白山市| 大丰市| 饶平县| 喜德县| 栖霞市| 寿阳县| 察雅县| 萨嘎县| 醴陵市| 和顺县| 凤山县| 康保县| 定边县|