1.選擇結構程序的定義:根據條件表達式的值是True/非零還是False/零做出決策,控制代碼塊的執行。
一、表達式與表達式的值
典型的表達式一般由運算符和操作數/操作對象組成。
運算符:對操作數/操作對象進行運算處理的符號。
操作數/操作對象:運算符處理的數據。
在條件表達式中常用的運算符如下:
(1)算術運算符:+ - * / // % ** ~
(2)關係運算符:> < == != <> <= >=
(3)測試運算符:in,not in, is, not is
(4)邏輯運算符:and, or, not
1.算數表達式及值
算數表達式的運算結果爲數值型,可將非零值看作True,零值看作False,即也可以看作布爾運算的結果。
2.關係表達式及值
(1)用兩個等號比較兩個操作數是否相等,結果將得出True或者是False
>>>3==3
True
>>>3==4
False
(2)進行比較的兩個對象可以是數值、字符串、列表、字典等。
>>>"abc"=="abc"
True
>>>a=[1,2,3]
>>>b=[1,2,3]
>>>a==b
True
(3)用!=表示不等號
>>>3==3
True
>>>3!=3
False
>>>3!=4
True
3.測試表達式
(1)成員測試
成員測試使用雲字符in和not in,在表達式中返回邏輯值。
>>>a=[1,2,3]
>>>1 in a
True
>>>5 in a
False
>>>5 not in a
True
>>>s="abcde"
>>>"a" in s
True
>>>"ab" in s
True
>>>"ac" in s
False
(2)同一性測試
同一性測試使用運算符is和 not is,在表達式中返回邏輯值。
>>>a=[1,2,3]
>>>b=a
>>>a==b
True #a,b引用相同對象,所以相同。
>>>b=[1,2,3]
>>>a==b
True
>>>a is b #a,b引用不同對象,雖然相等,但並不相同。
False
4.邏輯表達式及值
(1)and(和)
表示and左側的運算、值或者對象爲true/非零值,接着對右側表達式求值的到最後結果。如果左側爲false/零值,則最終結果爲false,並停止對右側表達式的運算。
(2)or(或)
表示對左側表達式求值,如果結果爲false/零值,繼續對右側表達式求值,得最後結果。如果左邊表達式爲true/非零值,則最終結果爲true,並停止運算右側表達式。
(3)not(非)
在需要對表達式求相反條件時,用not運算符,關係表達式的值爲布爾型。
二、複合表達式
1.複合表達式
當做一個判斷需考慮兩個或兩個以上的條件/因素時,此時需要對條件進行合理的邏輯組合運算。
2.複合表達式的混合運算
在進行混合運算時,需要按照運算符的優先級順序進行運算。
三、選擇結構
1.單分支語句
格式:
if 表達式:
語句塊
例如:比較兩個數大小,按從小到大的順序輸出
a=3
b=5
if a>b:
a,b=b,a
print ("從小到大輸出:")
print a,b
運行結果:
從小到大輸出:3 5
PS: 1.分支結構中的表達式一般是邏輯表達式,也可以爲任何合法的表達式。
2.分支結構中執行的語句可以是一條語句,也可以是多條語句組合而成的複合語句,或者稱語句塊。在python中用縮進結構來表示,具有相同的連續的縮進量的語句構成複合語句。
例 從鍵盤輸入圓的半徑,如果半徑大於等於0,則計算圓面積。
import math
r=input("請輸入圓的半徑:")
if r>=0:
s=r*r*math.pi
print "s=pi*r*r=",s
輸出結果:
請輸入圓的半徑:4
s=pirr=50.26548245743669
請輸入圓的半徑:-2
2.雙分支語句
格式:
if 表達式:
語句塊1
else :
語句塊2
例:從鍵盤上輸入一個整數,如果是偶數則輸出”偶數“,如果是奇數則輸出”奇 數“。
x=input('請輸入一個整數:')
if x%2==0:
print ('偶數');
else :
print ('奇數')
運行結果:
請輸入一個整數:2
偶數
3.多分支語句
格式:
if 表達式1:
語句1
elif 表達式2:
語句2
…
else :
語句n
例:由計算機對學生的成績進行分級(補考,及格,中,良,優),其劃分標準爲:小於60分爲補考;6070分爲及格;7080分爲良;8090分爲中;90100分爲優。最終輸出等級信息。
score=input('請輸入你的成績:')
if score<0 or score>100:
print 'error'
elif score<60:
print '補考'
elif score<70:
print '及格'
elif score<80:
print '良'
elif score<90:
print '中'
else :
print '優'
運行結果:
請輸入你的成績:-1
error
請輸入你的成績:95
優
4.選擇結構的嵌套
格式:
if 表達式1:
#語句塊1
…
if 表達式11:
語句塊11…
else :
語句塊12…
…
else :
語句塊2
例:購買地鐵車票的規定如下:乘14站,3元/位;乘59站,4元/位;乘9站以上,5元/位。輸入人數、站數,輸出應付款。
m,n=input('請輸入站數、人數:')
if m<=4:
pay=3*n
else :
if m<=9:
pay=4*n
else :
pay=5*n
print '應付款:',pay
輸出結果:
請輸入站數、人數:5,3
應付款:20