學習目錄
1. 條件語句結構
2. 布爾值的判斷
3. not 表達式表示相反邏輯
4. == 和is判斷的差別
5. 三元表達式(三元運算)
6. 使用all() 和any()函數進行條件判斷
7. 使用and 和or判斷
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
共勉: 東漢·班固《漢書·枚乘傳》:“泰山之管穿石,單極之绠斷幹。水非石之鑽,索非木之鋸,漸靡使之然也。”
-----指水滴不斷地滴,可以滴穿石頭;
-----比喻堅持不懈,集細微的力量也能成就難能的功勞。
----感謝讀者的閱讀和學習,謝謝大家。