python运算符讲解_3.Python运算符详解
1.算數運算符
符號:+?? -?? *?? /?? %(取余、取模)?? //(取整)?? **(開方)
2.比較運算符
符號:>?? >=??
特點:比較運算的結果一定是布爾值(True/False)
print(7 >= 3)?? #True
print(7 < 3)??? #False
3.賦值&混合賦值運算符
賦值運算符符號:=
混合賦值運算符符號:+=?? -=?? *=?? /=?? %=
a += 4????? #相當于:a = a + 4
a += b????? #相當于:a = a + b
4.邏輯運算符
需求:a = 6??? 3
拆分:a > 3??? a < 9?? 兩個表達式之間需要使用邏輯運算符來進行關聯
符號:and(邏輯與,并且,去交集)、or(邏輯或,或者,取并集)、not(邏輯非,取反)
特點:運算符兩側的數據類型一定是布爾型,結果也是布爾型
模板:
對于and操作而言:
True and True?????????? 結果:True
True and False????????? 結果:False
False and True????????? 結果:False
False and False???????? 結果:False
總結:and操作,滿足一假即假的特點,理解為:對False敏感
對于or操作而言:
True or True?????????? 結果:True
True or False????????? 結果:True
False or True????????? 結果:True
False or False???????? 結果:False
總結:or操作,滿足一真即真的特點,理解為:對True敏感
對于not操作而言:
not True??????? 結果為:False
not False?????? 結果為:True
5.位運算符
長處:是運算效率最高的運算符,直接是底層二進制的運算
符號:&(按位與)、|(按位或)、^(按位異或)(相異就為一)、<>(右移)
模板:
對于按位與操作而言:(全1才為1)
9 & 5,結果為多少???? 1
9:0000 1001
5:0000 0101
結果:0000 0001
對于按位或操作而言:(有1就為1)
9 | 5,結果為多少???? 13
9:0000 1001
5:0000 0101
結果:0000 1101
對于按位異或操作而言:(相異就為1)
9 ^ 5,結果為多少???? 12
9:0000 1001
5:0000 0101
結果:0000 1100
對于<
9 << 2,結果為多少??? 36
9:0000 1001
結果:00 100100
對于>>(右移)操作而言:
9 >> 2,結果為多少??? 2
9:0000 1001
結果:0000 0010
6.成員運算符
作用:運用對于容器對象的判斷,結果都是布爾值;判斷某個元素是否存在于容器中
符號:in? /? not in
1 str1 = "abcdefg1234567"
2 print("c" in str1) #True
3
4 dic1 = {"name":"Tom","age":30}5 print("name" in dic1) #True
6 print("Tom" in dic1) #False
【注意】對于dict對象,只能判斷鍵是否存在,對于值是無效的(永遠返回False)
補充: 何為表達式?
大白話:凡是計算可以得出個值的就是表達式
何為條件表達式?
大白話:在表達式的基礎上,最終結果一定是布爾值
7.三元/三目運算符
格式:【表達式1 if 條件表達式 else 表達式2】。執行流程:會先執行條件表達式,如果執行結果為True,那么就會執行表達式1,并且將表達式1的結果作為整個三元運算的最終結果;如果執行結果為False,那么就會執行表達式2,并且將表達式2的結果作為整個三元運算的最終結果
例如:比較兩個數的大小,得到較大值
1 print(a if a > b else b)
三元運算符就是python語法糖之一。【補充一個python語法糖:列表生成式】
作用:執行完畢之后會返回給程序一個列表對象,在不破壞原本復雜需求的同時;更加便捷的得到一個列表對象(代碼更加簡短)。格式: 【expr for ver1,[ver2],... in 序列對象(range、str、list、tuple、dict...) if ...】
1 #案例1:得到[1,2,3,...,10]列表對象
2 print([x for x in range(1,11)])3
4 #案例2:得到 1*1,2*2,3*3,...,10*10的一個列表對象
5 print([x ** 2 for x in range(1,11)])6
7 #案例3:得到 1*1,2*2,3*3,...,10*10的一個列表對象,元素只接受偶數的乘積值
8 print([x ** 2 for x in range(1,11) if x % 2 ==0])9
10 #案例4:實現全排列,str1 = 'ABC',str2 = 'XYZ',得到效果如下:['AX','AY','AZ','BX','BY',...,'CZ']
11 print([x + y for x in str1 for y instr2])12
13 #案例5:字典對象:{'aa':'AA','bb':'BB','cc':'CC'},得到字典對象的鍵和值,然后組合成為如下數據存入到列表中返回:得到['aa=AA','bb=BB','cc=CC']
14 print([k + '=' + v for k,v indic1.items()])15
16 #案例6:將列表lt = ['PYTHON','Java','PHP','IOS'] 中的每個字符串元素都轉換為全小寫返回,得到:['python','java','php','ios']
17 print([x.lower() for x inlt])18
19 #需求7:將列表lt = ['PYTHON','Java','PHP','IOS',200]中的每個字符串元素都轉換為全小寫返回,得到:['python','java','php','ios']
20 #print([x.lower() for x in lt]) # AttributeError類型錯誤
21 print([x.lower() for x in lt if isinstance(x,str)])
【注意事項】上面代碼的需求7中,lower()函數是屬于字符串類型獨有的函數,而lt中200是int類型的數據,一旦嘗試調用lower()就會報錯(非法的,不允許的);這里可以使用內置函數:isinstance(obj,type)解決。isinstance(obj,type)函數的作用:判斷obj對象是否屬于type類型,如果類型匹配,則返回True,反之,返回False。
總結
以上是生活随笔為你收集整理的python运算符讲解_3.Python运算符详解的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: python3 修饰器_【python3
- 下一篇: python pandas库实现逻辑回归
