布爾值
True 真
False 假
所有的數據類型都自帶布爾值,數據只有在0,None和空的時候為False。
print(bool()) print(bool()) print(bool('')) print(bool(' ')) print(bool(0)) print(bool(None)) 輸出結果 False False False True False False
not、or和and優先級
優先級由高到低:not>>and>>or
例1:先計算and,后計算or----->True and False為False,False or False為False,結果輸出no
if True and False or False: print('yes') else: print('no')
輸出結果
no
例2:先計算and,后計算or------->False and False為False,True and False為True,輸出yes
if True or False and False: print('yes') else: print('no') 輸出結果 yes
例3:先計算not,后計算and,最后計算or------>not True為False,False and False為False,False or False為False,輸出no
if not True and False or False: print('yes') else: print('no') 輸出結果 no
例4:先計算not False為True,再計算False and True為False,最后計算True or False為True,輸出yes
if True or False and not False: print('yes') else: print('no') 輸出結果 yes
集合
集合是進行關系運算的,能夠去除重復元素,而元素只能是不可變類型,另外,集合和字典一樣,是無序的。
創建集合
s1={1,2,2,3,4} print(s1,type(s1)) s2=set('apple') print(s2,type(s2)) s3=set(['apple','apple','pear']) print(s3,type(s3)) s4=set(('apple','apple','pear')) print(s4,type(s4)) s5=set({'apple':'蘋果','pear':'梨'}) print(s5,type(s5)) 輸出結果:(順序可能不一樣) {1, 2, 3, 4} <class 'set'> {'a', 'p', 'l', 'e'} <class 'set'> {'pear', 'apple'} <class 'set'> {'pear', 'apple'} <class 'set'> {'pear', 'apple'} <class 'set'>
創建空集合
s=set() print(type(s))
交集
s={1,2,'c',4,5} d={1,'a','b',4,5} print(s.intersection(d)) 或 print(s & d) 輸出結果: {1, 4, 5}
並集
s={1,2,'c',4,5} d={1,'a','b',4,5} print(s.union(d)) 或 print(s | d) 輸出結果: {'b', 1, 2, 4, 5, 'a', 'c'}
差集
s={1,2,'c',4,5} d={1,'a','b',4,5} print(s.difference(d)) 或 print(s - d) 輸出結果 {'c', 2}
對稱差集
s={1,2,'c',4,5} d={1,'a','b',4,5} print(s.symmetric_difference(d)) 或 print(s ^ d) 輸出結果: {'b', 2, 'a', 'c'}
清空集合內元素
s={1,2,'c',4,5} s.clear() print(s) 輸出結果 set()
求差集並賦值
s={1,2,'c',4,5} d={1,'a','b',4,5} s.difference_update(d) 輸出結果 {2, 'c'}
更新
s1={'a',1} s2={'a','b',3,1} s1.update(s2) print(s1) 輸出結果 {1, 3, 'a', 'b'}
添加
s1={'a',1} s1.add(3) s1.add('a') print(s1) 輸出結果 {1, 3, 'a'}
刪除
s1={'a',1} s1.discard('a') #當沒有該元素時候不報錯 #s1.remove('aa') #當沒有aa元素時候會報錯 #s1.pop() #隨機刪除 print(s1) 輸出結果: {1}
判斷
s1={'a',1} s2={'a','b',3,1} print(s1.issubset(s2)) #判斷s1是否是s2的子集,如果s1等於s2那么互為子集 print(s2.issuperset(s1)) #判斷s2是否是s1的超集 print(s1.isdisjoint(s2)) #判斷有沒有集合,如果沒有返回True 輸出結果 True True False
循環
for i in s2: print(i) 輸出結果(無序) l e a p