天天看點

測開不得不會的python條件判斷語句if

作者:科雷軟體測試

學習目錄

1. 條件語句結構

2. 布爾值的判斷

3. not 表達式表示相反邏輯

4. == 和is判斷的差別

5. 三元表達式(三元運算)

6. 使用all() 和any()函數進行條件判斷

7. 使用and 和or判斷

測開不得不會的python條件判斷語句if

python的條件語句是指當表達式判斷為True(bool值)時執行代碼塊。

條件語句結構

if 表達式: #表達式為True時 執行代碼塊1

代碼塊1

elif 表達式: #表達式為True時 執行代碼塊2

代碼塊2

elif 表達式: #表達式為True時 執行代碼塊3

代碼塊3

....支援多個elif表達式

else: #以上表達式都為False時 執行代碼塊n

代碼塊n

以上結構中elif和else條件語句為非必須。

布爾值的判斷

條件表達式判斷的是布爾值為True或者False,可以使用函數bool()判斷對象的布爾值。

#數字0的布爾值
print(bool(0))
#列印結果
False
#數字1的布爾值
print(bool(1))
#列印結果
True           

一些内置對象的布爾值說明:

  • 布爾值為False: 數字0,None,False,空清單[],空字典{},空集合set(),空元組()
  • 布爾值為True: 非數字0,True,非空清單,非空字典,非空集合set(),非空元組(),自定義的類和執行個體

not 表達式表示相反邏輯

舉例:當表達式為False時,使用not+表達式,if條件判斷為True,會執行代碼塊1

if not 表達式:
	代碼塊1           

== 和is判斷的差別

== 判斷的是兩個對象的值是否相等,而is判斷的是對象的記憶體位址是否一緻。

舉例:變量A和B都為一個空清單

A = []
B = []
#使用==判斷
if A == B:
	print('A等于B')
#列印結果為True 表示A和B的值一緻
True

#使用is判斷
print(f'A的記憶體位址 {id(A)}')
print(f'B的記憶體位址 {id(B)}')
if A is B:
	print('A和B的記憶體位址是同一個')
else:
	print('A和B的記憶體位址不是同一個')
#執行結果如下 表示A和B的記憶體位址不是同一個 表達式為False
A的記憶體位址 4509789696
B的記憶體位址 4509759936
           

三元表達式(三元運算)

是一個簡化的條件表達式,結構如下:expression為True時執行代碼塊1,否則執行代碼塊2

[代碼塊1] if [expression] else [代碼塊2]

A = 15
B = 15
if A == B:
	C=A+B
else:
	C=A-B           

以上條件語句可以簡化為:

C = A+B if A==B else A-B           

使用all() 和any()函數進行條件判斷

all() 函數的文法 :all(iterable) 參數為可疊代對象

  • 對于疊代對象的的所有值,如果 bool()的結果都為 True,則傳回 True,如果可疊代對象為空,傳回 False

any() 函數的文法 :any(iterable) 參數為可疊代對象

  • 對于疊代對象的的所有值,如果 bool()的結果任意一個為 True,則傳回 True,如果可疊代對象為空,傳回 False

舉例:清單A有四個數字,判斷清單的數字是否被2整除,隻有數字2和4被2整除(清單表達式請學習python清單介紹)

listA = [1,2,3,4]
#通過前面文章提到的清單表達式 生成新清單傳入all和any函數
print(f'執行all()函數的結果: {all([i%2 ==0 for i in listA])}')
print(f'執行any()函數的結果: {any([i%2 ==0 for i in listA])}')
#結果如下
執行all()函數的結果: False
執行any()函數的結果: True           

使用and 和or判斷

有兩個表達式A和B

A和B都為True時 A and B 結果為True

A和B有一個為False時 A and B 結果為False

A和B有一個為True時 A or B 結果為True

A和B都為False時 A or B 結果為False

A = True
B= False
if A and B:
	print(f'A和B都為True時 A and B 結果為True')
else:
	print(f'A和B有一個為False時 A and B 結果為False')
#列印結果:
A和B有一個為False時 A and B 結果為False

if A or B:
	print(f'A和B有一個為True時 A or B 結果為True')
else:
	print(f'A和B都為False時 A or B 結果為False')
#列印結果
A和B有一個為True時 A or B 結果為True           

共勉: 東漢·班固《漢書·枚乘傳》:“泰山之管穿石,單極之绠斷幹。水非石之鑽,索非木之鋸,漸靡使之然也。”

-----指水滴不斷地滴,可以滴穿石頭;

-----比喻堅持不懈,集細微的力量也能成就難能的功勞。

----感謝讀者的閱讀和學習,謝謝大家。