文章目錄
- 前言
- 一、not、and、or的含義以及優先級
- 二、not、and、or的使用方法
- 1.not
- 2.and
- 1、找到并回傳第一個False(假)
- 2、找到并回傳最后一個True(真)
- 3.or
- 1、找到并回傳第一個True(真)
- 2、找到并回傳最后一個False(假)
- 總結
前言
(小白專用)本次所分享的是Python中的not、and、or的執行時的優先級,以及他們的具體用法,本文比較詳細,不喜勿噴,
一、not、and、or的含義以及優先級
| 物件 | 回傳結果 | 優先順序 |
|---|---|---|
| not x | if x is false,then True,else False | 1 |
| x and y | if x is false,then x,else y | 2 |
| x or y | if x is false,then y,else x | 3 |
- 含義:not是 “非” ;and是 “與” ;or是 “或” (可以用數學去理解)
1、not True = False 或者 not False = True (非真就是假,非假即真)
2、and是一假則假,兩真為真,兩假則假
3、or是一真即真,兩假即假,兩真則真 - 優先級是 not > and > or
代碼如下(示例):
x=1 #將x賦值為1
y=0 #將y賦值為0
z=0 #將z賦值為0
print(x or y and not z)
'''
輸出結果為
1
'''
小提示: 我們知道在編程語言中“非0即是True”,也就是“0為False,1為True”
-
由于優先級是not>and>or,所以首先執行not z(也就是not 0),
即 not 0 = not False =True =1下一步是輪到了and,那么 y and 1(已知y=0)即 0 and 1,也就是
False and True (假與真),我們剛剛談過and,一假即假,故
y and 1 = 0 and 1 = False = 0最后一步按優先級是輪到了or,即 x or 0(已知x=1),
即 1 or 0 =True or Flase =True = 1(or即“或”中,一真即真)
所以輸出結果為 1 -
總結: 代碼運算程序為: (用數學符號表示優先級)
{ x or [ y and (not z) ] }
二、not、and、or的使用方法
1.not
- if x is false,then True,else False
如果x為False則not x 為True,否則為False
(如果x是假的,則“非假”為真,否則x是真的,則非真為假) - 在編程中是 布爾運算,即回傳值是True 或者 False
代碼如下(示例):
print(not 0,not 1,not True,not False)
'''
輸出結果為:
True False False True
'''
2.and
- and運算后的回傳結果:
從左到右計算運算式,若所有的都為真,則回傳最后一個值,若存在假,回傳第一個值, - 簡單理解:
and的目的是找到并回傳第一個False(假)或最后一個True(真) (從左往右找)(一假即假,兩真即真)
代碼如下(示例):
1、找到并回傳第一個False(假)
print(1 and 2 and 0 and 4 and False)
'''
輸出結果為:
0
'''
- 因為and是找到第一個False(假),我們知道在計算機中,
False即為0,所以輸出結果是 0
2、找到并回傳最后一個True(真)
print(1 and 2 and True and 4 and 6)
print(2 and 5 and True and 7 and True)
'''
輸出結果為:
6
True
'''
- 因為 1,2,True,4,6 都不是0,我們知道 非零True,所以都是 真的,那么輸出最后一個真值,所以輸出結果為 6
- 因為 2,5,True,7,True 都不是0,都是真的,同理輸出最后一個真值,所以輸出結果為 True
3.or
- or運算后的回傳結果:
從左到右計算運算式,只要遇到真值就回傳那個真值,如果運算式結束依舊沒有遇到真值,就回傳最后一個假值, - 簡單理解:
or的目的是找到并回傳第一個True(真)或最后一個False(假) (從左往右找)(一真即真,兩假即假)
代碼如下(示例):
1、找到并回傳第一個True(真)
print(0 or 0 or '' or 8 or 1 )
'''
輸出結果為:
8
'''
小提示:
- 在python中, [ ] 或者 ’ ’ 或者 ( ) 或者 None 都是空的意思,
空也為假,即 空 = 假 = False - 由上面的代碼可以看到,有兩個真值分別是 8和1,但我們要找到作用范圍內的第一個真值(True),即第一個為8,所以輸出結果為 8
2、找到并回傳最后一個False(假)
print([] or 0 or '' or None or () )
'''
輸出結果為:
()
'''
小提示:
-
在python中, [ ] 或者 ’ ’ 或者 ( ) 或者 None 都是空的意思,
空也為假,即 空 = 假 = False -
此處可以知道,代碼中都為假(False),所以要找到最后一個假(False)并回傳這個值,最后一個是()所以輸出結果為 ()
總結
- 優先級是 not > and > or
- not:如果x是假的,則“非假”為真,否則x是真的,則非真為假
- and: 找到并回傳第一個False(假)或最后一個True(真)
- or: 找到并回傳第一個True(真)或最后一個False(假)
如果您還是不懂 或者 想更深入的了解,請點擊此鏈接: 請點擊我.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/203041.html
標籤:其他
上一篇:2020年科大訊飛多模態情感分析與識別前三名隊伍分享
下一篇:圖靈獎得主 John E. Hopcroft 等 300 余位 AI 學者“穿越”回宋代開國際 AI 大會,這場面你見過嗎?
