天天看點

1.7- 條件語句

前面我們看到的程式都是順序執行,程式在執行時是一句句往下進行的,這種一句句順序執行的語句是程式中第一類型的語句。

程式中除了這種簡單的順序結構外,還有一種會轉彎的分支結構,它可以根據執行條件來決定該執行哪些語句,不該執行哪些語句,分支語句是程式中的第二類語句。

1、條件語句格式一:if 語句

格式一:

if 條件:

  語句

其中條件後面有個":"号, 執行的語句需要向右邊縮進。

這種格式的含義是當條件成立時,執行指定的語句,執行完後接着執行if後下一條語句;如條件不成立,則該語句不執行,轉去執行if後下一條語句,如下圖:

1.7- 條件語句

2、條件語句格式二:if else

格式二:

if 條件:

 語句 1

else:

 語句 2

else後面有個":",語句1、語句2都要向後邊縮進,而且要對齊。

當條件成立時,執行指定的語句1,執行完後執行if後下一條語句;

如條件不成立,執行指定的語句2,執行完後執行if後下一條語句。

如下圖所示:

1.7- 條件語句

案例一:輸入一個整數,判斷它是奇數還是偶數

分析:設輸入的整數是n,n%2==0則是偶數,否則為奇數

程式如下:

n=input("請輸入一個整數:")
n=int(n)
if n%2==0:
    print("偶數")
else:
    print("奇數")    
           

運作結果如下:

請輸入一個整數:10 
偶數
請輸入一個整數:5 
奇數
           

案例二:輸入一個整數,輸出其絕對值

分析:設輸入的整數是n,如果n>=0,則輸出n;如果n<0,則輸出-n

程式如下:

n=input("請輸入一個整數:")
n=int(n)
if n>=0:
    print(n)
else:
   print(-n)    
           

運作結果如下:

請輸入一個整數:5
5
請輸入一個整數:-10
10
           

案例三:輸入兩個數,輸出最大的一個

分析:這是求兩個數中最大值的問題,設輸入的數是a b,a>b時,則最大值為a,反之為b

程式如下:

a=input("請輸入一個數:")
b=input("請輸入一個數:")
a=float(a)
b=float(b)

if a>=b:
    c=a
else:
    c=b

print(c)    
           

運作結果如下:

請輸入一個數:10.9

請輸入一個數:8.2
10.9
           

更簡便程式如下:

a=input("請輸入一個數:")
b=input("請輸入一個數:")
a=float(a)
b=float(b)
c=a

if a<b:
    c=b

print(c)    
           

3、條件語句格式三:多分支語句

多分支語句格式如下:

if 條件1:

 語句1

elif 條件2:

 語句2

elif 條件n:

 語句n

else:

 語句n+1

每個條件後有":",語句1、語句2…等需要向右邊縮進,而且要對齊。

當條件1成立,執行指定的語句1,執行完後,執行if後下一條語句;

當條件1不成立,判斷條件2,條件2成立時,執行指定的語句2,執行完後,執行if後下一條語句;

當條件2不成立,判斷條件3,…

判斷條件n是否成立,條件n成立時,執行指定的語句n,執行完後,執行if後下一條語句;

當條件n不成立,執行else 後的語句n+1,執行完後,執行if後下一條語句。

如下圖所示:

1.7- 條件語句

案例四:輸入一個學生的成績,按[90,100]、[80,89]、[70,79]、[60,69]、[0,59]的範圍分别給出A、B、C、D、E的等級

分析:輸入的成績可能不合法(小于0或大于100),也可能在[90,100]、[80,89]、[70,79]、[60,69]、[0,59]其中一段内,需要用多分支if處理

程式如下:

a=input("請輸入一個分數:")
a=float(a)

if a<0 or a>100:
    print("不合法的分數")
 
if a>=90:
    print("A")
elif a>=80:
    print("B")
elif a>=70:
    print("C")  
elif a>=60:
    print("D") 
else:
    print("E")   
           

運作結果如下:

請輸入一個分數:89
B