布尔表达式
True,False
在python中,一个等于号表示赋值,两个等于号表示判断恒等
print(1==1)
print('a'=='A') #字符之间的比较,比的是ASCII码,a=97,A=65
print('aA'=='Aa') #字符串之间的比较,只比较第一位,只有第一位相同时,才会向后比较
print('a'>='A') #结果为True
True和False可以参与算术运算,True相当于1,False相当于0
print(True+True)
in,not in
list1=[10,20,[30,40,50]]
print(10 in list1)
print(30 in list1) #30属于子列表,不属于list1
print(30 in list1[-1]) #这样写就是True
print(10 not in list1)
print(30 not in list1)
逻辑运算符and,or
print(1<2 and 2<1 and 5>4 and 9>8) #一假为假,全真为真
print(2<1 or 2>3 or 9>10 or 100>101 or 1<2) #一真为真,全假为假
逻辑运算符的优先级 not>and>or,括号可以改变运算的优先级
print(3>2 and 2>3 and 7>5 or 1>0)
判断某个实例是否属于某个类
print(isinstance('12',str))
!=表示不等于
print(1!=2)
浅拷贝,深拷贝
list1=[10,20,30,[40,50]]
list2=list1 #简单的赋值
list2=list1[:] #切片,等价于浅拷贝
import copy #加载复制模块
list2=copy.copy(list1) #浅拷贝
list2=copy.deepcopy(list1) #深拷贝
list1[0]=98 #浅拷贝或者切片,列表是两个不同的列表
list1[-1][0]=666 #浅拷贝或者切片,子列表仍然指向的是同一个地址,深拷贝列表和子列表都是不同的
print(list1,id(list1[-1]))
print(list2,id(list2[-1]))