今天來介紹一下Python中的運算子,運算子主要有以下幾類:
-
算術運算子
-
比較(關系)運算子
-
邏輯運算子
-
賦值運算子
-
三目運算子
-
位運算子
-
成員運算子
-
身份運算子
接下來,詳細的介紹一下運算子的具體操作:
算術運算子
算術運算子用于對整數型別和浮點型別的資料進行相關操作的運算子,
常見的算術運算子以及對應的操作介紹如下圖所見:

如果將True/False用于數值的操作運算的時候,會自動轉換為1和0去進行計算,

比較運算子
比較運算子主要用于比較兩個運算式的大小,對比的回傳結果是True或者False,
| 運算子 | 名稱 | 例子 | 說明 |
| > | 大于 | a>b | a大于b時回傳True,否則False |
| == | 等于 | a==b | a與b相等時回傳True,否則False |
| < | 小于 | a<b | a小于b時回傳True,否則False |
| >= | 大于等于 | a>=b | a大于等于b時回傳True,否則False |
| <= | 小于等于 | a<=b | a小于b時回傳True,否則False |
| != | 不等于 | a!=b | a與b不相等時回傳True,否則False |
實體演示:

下面考考你

在python中,以下陳述句執行結果分別是什么呢?print(1.0 == 1) ==>Trueprint(1 == True) ==>Trueprint([2,1]>[1]) ==>Trueprint(['1']>[1]]) ==>運行報錯
邏輯運算子
邏輯運算子用于對布爾型變數進行運算,其結果也是布爾型,
-
and 與(and兩邊的值都為True時,回傳True)
-
or 或 (or兩邊的值只要有一個為True時,回傳True)
-
not 非,(將true變為false,false變為true)
請看具體案例:
print(True and True) #Trueprint(True and False) #Falseprint(False and False) #False
對于 a or b 來說,如果 a 為真,那么值為 a,否則為 b;對于 a and b 來說,如果 a 為真,那么值為 b,否則為 a,???????
print(True or False) #Trueprint(False or True) #Trueprint(False or False) #False???????
print(not True) #Falseprint(not False) #True
具體的運行效果如上面腳本所示,要注意的是,像這種邏輯運算子,在運行程序中,采用了類似“短路”的設計,and 和 or操作在運算的時候,如果結果已經確定,就不會再去計算后面的運算式,
比如:True or False ,前面的True已經確定最侄訓傳的結果會為True,就不會再去管or后面去True還是False,總之:and要所有資料都為True才回傳True,or只有有一個為True則回傳True,
賦值運算子
=是最常見的賦值運算子,比如a=3,就表示將3的值賦值給變數a,其他常見的賦值運算子有:+=、-+、*=、/=、%=、//=、**=等,???????
a+=b ==> a=a+ba-=b ==> a=a-ba*=b ==> a=a*b
三目運算子
這個一般用在if判斷條件中比較常見,比如,求2個數中的最大值,普通的寫法如下:???????
if a>b:max = aelse:max = b
python中提供了一個簡便的寫法,代碼看上去簡潔很多:
max = a if a>b else b
python中通過if else的條件判斷,可以實作類似java里面的?:三目運算子,
java里面的用法如下:z = x>y ? x-y : x+y;
python里面用法:value1 if 判斷條件 else value2
稍微復雜點的寫法:???????
a if a>b else c if c>d else d等價于:a if a>b else ( c if c>d else d )
成員運算子
-
in :如果在指定的序列中找到值回傳True,否則回傳False
-
not in :制定的序號中沒有找到對應的值則回傳True,找到則回傳False
成員運算子用的還是比較多的,比如查看某個key是不是在某個字典里面時,可以用 key in dict.keys()去判斷???????
a = {"A": "1", "B": "2"}print('A' in a.keys())print('a' in 'abcdefg')
身份運算子
is、is not,用來判斷兩個識別符號是否參考的同一個物件???????
a1 = 10b1 = 2b1 += 8print(a1 is b1) #Trues1 = 'abc's2 = '123abc'[3:]print(s1 is s2) #Falsea1 = 1print(a1 is True) #False???????
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/305987.html
標籤:python
