大家好,欢迎来到IT知识分享网。
布尔表达式只有两种取值:True/False
一、布尔表达式中的等号
1、布尔表达式中一个等号代表赋值,两个等号代表判断相等
print(1==2) #结果为False print(1==1) #结果为True print('a' == 'A') #结果为False,字符之间的比较一般比较的是字符的ASCII码值 print('aA' == 'Aa') #结果为False,字符串之间比较时,之比较第一位,如果第一位相同则继续比较,第一位不同直接返回ifalse print('a' >= 'A') #结果为True
布尔表达式中的True和False可以参与算术运算,True相当于1False相当于0
print(True+True) #结果为2
2、布尔表达式中的in和not in
list = [10,20,[30,40,50]] print(10 in list)#10在列表中 #结果为True print(30 in list)#30在列表中 #结果为False,因为30在列表的子列表中 print(30 not in list)#30在列表中 #结果为True,因为30在列表的子列表中 print(30 in list[-1])#可以加上列表的下标 #结果为True
二、布尔表达式中的逻辑运算符(and,or)
print(1<2 and 2<1) #结果为False,一假为假,全真为真 print(2<1 or 2>3 or 9>10) #结果为False,一真为真,全假为假
逻辑运算符的优先级: not>and>or
print(3>2 and 2>3 and 7>5 or 1>0) #结果为True print(3>2 and 2>3 and (7>5 or 1>0)) #结果为False
三、返回值为布尔表达式的函数
判断某个实例是否属于某个类
函数原型:isinstance(判断的数,类型)
如下:
print(isinstance(12,int))#判断12是否属于int型 #结果为True
四、深拷贝和浅拷贝的区别
1、简单赋值
list1=[10,20,30,[40,50]] list2=list1 #简单的赋值 list1[0]=98 print(list1) print(list2)
这样我们得到的结果就是,list1和list2的值是相等的‘
这是因为在列表中,这个只是简单的赋值,两者只是变量名的不同,但是指向的却是同一个列表。列表和字符串不同它是有一个固定的位置的。所以list1和list2指向的都是一个列表。所以无论增怎样改list1的值最后出来的结果都是一样的。
那么如何使得这两者的值不同呢?
在没学习深拷贝和浅拷贝的时候,我们利用的是切片
list1=[10,20,30,[40,50]] list2=list1[:] #list2等于list1的切片,切片也就相当于浅拷贝 list1[0]=98 print(list1) print(list2)
这样我们就可以只修改list2的值,不修改list1的值,得到的结果如下所示
2、浅拷贝
list1=[10,20,30,[40,50]] #list2=list1[:] #list2等于list1的切片,切片也就相当于浅拷贝 import copy list2=copy.copy(list1)#浅拷贝 list1[-1][0]=666 print(list1) print(list2)
这样得到的结果是list1和list2的值是相同的
这是因为浅拷贝或者切片,列表是两个不同的列表,但是子列表指向的还是同一个地址
3、深拷贝
列表和子列表之间都可以互不影响
list1=[10,20,30,[40,50]] import copy list2=copy.deepcopy(list1)#深拷贝 list1[-1][0]=666 print(list1) print(list2)
这样子列表和列表之间互不影响
这是因为深拷贝出现的结果是子列表和列表之间是不同的
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/133203.html