07-python基础-布尔表达式

python基础-布尔表达式

思考题:浅拷贝和深拷贝

list1=[10,11,23,44,5]
list2=list1 #普通赋值型,其实指向的id是一样的。
list1[0]=100 修改了list1里面的值,list2里面的值也会跟着改变
1.因为其实list1和list2指向的是同一个内存地址
print(list1)
print(list2)

[100, 11, 23, 44, 5]
[100, 11, 23, 44, 5]
查看指向的id
print(id(list1))
print(id(list2))
发现他们指向的id是一样的。
2737363998664
2737363998664

2如果希望两者互不干扰 使用切片
此时两个id是不一样的,修改了list1的值,list2的值不会一起发生改变
list2=list1[:]
3.引入深拷贝
修改元组内子列表的值,就算是切片也不管用了
因为:切片可以生成新的列表,但对于子列表而言,仍然指向的是同一个地址。
list1=[10,11,[9,8],23,44,5]
list2=list1[:]
list1[2][0]=999
print(list1)
print(list2)
则:
[10, 11, [999, 8], 23, 44, 5]
[10, 11, [999, 8], 23, 44, 5]

此时修改list1里面的值,list2里面的值虽然是list1的切片,但经过了深拷贝就不会被变化了。

import copy #导入标准库中的copy模块。
list1=[10,11,[9,8],23,44,5]
list2=list1[:]
list2=copy.deepcopy(list1)
list1[2][0]=999 在深拷贝之后修改
print(list1)
print(list2)
则:
[10, 11, [999, 8], 23, 44, 5]
[10, 11, [9, 8], 23, 44, 5]
浅拷贝:甚至不需要导入。
list2=copy.copy(list1) 浅拷贝,等价于切片[:]
浅拷贝:列表之间是没有影响的,但是子列表之间是有影响的
总结:
1.list2=list1
2.切片。list2=list2[:]
3.浅拷贝:list2=copy.copy(list1) 如上解释
4.深拷贝:需要导入一个模块。
import copy
list2=copy.deepcopy(list1)

布尔表达式

eg:
print(2>1)
True
print(2>11)
False
#布尔表达式True真,也可以用1来表示,False假可以用0来表示
print(‘a’>“b”) # a=97,A=65
print(‘a’>‘B’)
False
True
当多个字母一起比较时,只有第一位相同时,才会向后比较
print(‘aA’>‘Aa’)
True
#赋值号= 与恒等号==
print(1==1)

in ,not in

1>
print(10 in list1)
True
2>
print(9 in list1) 9不在列表list1里面,而是在它的子列表里面
False
3>
print(8 in list1[2]) # 8在子列表
True
4>
print(‘10’ in list1)
False 数据类型不对
5>
print(999 not in list1)
True
6>
print(9 not in list1)
True

逻辑运算符 and并且 ,or或者

1》and
print(1>2 and 2>1) 并且
在and中,无论有多少个and,只要当中有一个假就为假,全真则为真。
2》or
print(1>3 or 3>4 or 3>2)
在or 中,无论有多少个or,只要当中有一个为真,则最终为真。
3》混合
and ,or ,not优先级 not >and >or
print(1>2 and 2>1 or 3>20 and 5>4 or 6>5)
假 or 假 or 真
True
括号改变优先级
print(1>2 and 2>1 or 3>20 and (5>4 or 6>5))
False

应用场景

查看百度里面搜索元素是否存在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值