Python筆記 選擇結構

2021-10-23 20:36:08 字數 4523 閱讀 4616

絕大部分合法的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...