絕大部分合法的python表示式都可以作為條件表示式。
在選擇和迴圈結構中,條件表示式的值只要不是false、0(或0.0、0j等)、空值none、空列表、空元組、空集合、空字典、空字串、空range物件或其他空迭代物件,python直譯器均認為與true等價。
>>
>
if666
:#使用整數作為條件表示式
print(9
)9>>
> a =[3
,2,1
]>>
>
if a:
#使用列表作為條件表示式
print
(a)[3,
2,1]
>>
> a =
>>
>
if a:
#空列表等價於false
print
(a)else
:print
('empty'
)empty
>>
> i = s =
0>>
>
while i <=10:
#使用關係表示式作為條件表示式
s += i
i +=
1>>
>
print
(s)55
>>
> i = s =
0>>
>
while
true
:#使用常量true作為條件表示式
s += i
i +=
1if i >10:
#符合特定條件時使用break語句退出迴圈
break
>>
>
print
(s)55
>>
> s =
0>>
>
for i in
range(0
,11,1
):#遍歷序列元素
s += i
>>
>
print
(s)55
(1)關係運算子
python中的關係運算子可以連續使用,這樣不僅可以減少**量,也比較符合人類的思維方式。
>>
>
print(1
<
2<3)
#等價於1<2 and 2<3
true
>>
>
print(1
<
2>3)
false
>>
>
print(1
<
3>2)
true
在python語法中,條件表示式中不允許使用賦值運算子「=」,避免了誤將關係運算子「==」寫作賦值運算子「=」帶來的麻煩。在條件表示式中使用賦值運算子「=」將丟擲異常,提示語法錯誤。
>>
>
if a=3:
#條件表示式中不允許使用賦值運算子
syntaxerror: invalid syntax
>>
>
if(a=3)
and(b=4)
: syntaxerror: invalid syntax
(2)邏輯運算子
邏輯運算子and、or、not分別表示邏輯與、邏輯或、邏輯非。對於and而言,必須兩側的表示式都等價於true,整個表示式才等價於true。
對於or而言,只要兩側的表示式中有乙個等價於true,整個表示式就等價於true;對於not而言,如果後面的表示式等價於false,整個表示式就等價於true。
邏輯運算子and和or具有短路求值或惰性求值的特點,可能不會對所有表示式進行求值,而是只計算必須計算的表示式的值。
>>
>
3and
5#整個表示式的值是最後乙個計算的子表示式的值
5>>
>3or
53>>
>
0and
5#0等價於false
0>>
>0or
55>>
>
not[1,
2,3]
#非空列表等價於true
false
>>
>
not#空字典等價於false
true
常見的選擇結構有單分支選擇結構、雙分支選擇結構、多分支選擇結構以及巢狀的分支結構,也可以構造跳轉表來實現類似的邏輯。
迴圈結構和異常處理結構中也可以帶有「else」子句,可以看作是特殊形式的選擇結構。
例1編寫程式,輸入使用空格分隔的兩個整數,然後按公升序輸出。
x =
input
('input two number:'
)a, b =
map(
int, x.split())
if a > b:
a, b = b, a #序列解包,交換兩個變數的值
例2求解雞兔同籠問題。
jitu, tui =
map(
int,
input
('請輸入雞兔總數和腿總數:'
).split())
tu =
(tui - jitu*2)
/2ifint
(tu)
== tu:
print
('雞:,兔:'
.format
(int
(jitu-tu)
,int
(tu)))
else
:print
('資料不正確,無解'
)
python還提供了乙個三元運算子,並且在三元運算子構成的表示式中還可以巢狀三元運算子,可以實現與選擇結構相似的效果。語法為
value1 if condition else value2
當條件表示式condition的值與true等價時,表示式的值為value1,否則表示式的值為value2。
>>
> b =6if
5>
13else
9#賦值運算子優先順序非常低
>>
> b
9
if 表示式1:
語句塊1
elif 表示式2:
語句塊2
elif 表示式3:
語句塊3
else:
語句塊4
其中,關鍵字elif是else if的縮寫。
例3使用多分支選擇結構將成績從百分制變換到等級制。
例4使用巢狀選擇結構將成績從百分制變換到等級制。
def
func
(score)
: degree =
'dcbaae'
if score >
100or score <0:
return
'wrong score.must between 0 and 100.'
else
: index =
(score -60)
//10
if index >=0:
return degree[index]
else
:return degree[-1
]
python學習筆記(二) 選擇,迴圈結構
0.邏輯運算子 與 and 或 or 非 not 1.空語句 pass 相當於結束乙個選擇分支,比如if,else 2.選擇結構 if elif else score int input 請輸入你的成績 if score 75 print 優秀 pass elif score 75 print 還行...
Python選擇結構if if else
根據條件表示式的值確定下一步流程。條件表示式的值只要不是false 0 0.0 0j 空值none 空列表 空元組 空集合 空字典 空字串 空range物件等其他空迭代物件。python直譯器都會認為與true等價。所有python合法表示式都可以作為條件表示式。python條件表示式中不允許使用賦...
python之選擇結構
條件運算子 選擇結構的實現 選擇結構程式舉例 注 同一優先順序計算順序從右往左 邏輯運算的重要規則 測試運算子 成員運算子 in not in 成員運算子用於在指定的序列中查詢某個值是否存在。n 1 2,3 4,5 a if a in n print in if a not in n print i...