|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 漫星闪 于 2022-8-17 13:52 编辑
Hello,大家好,我是漫星闪,如你所见,我是一个日更的优质肝帝,欢迎你来到我的笔记系列:https://fishc.com.cn/forum.php?m ... =1994&fromop=my
1.餐前食物(在笔记开始之前,先给大家垫垫肚子吧!)
短路逻辑,一种反人类但高效率的逻辑,注意,很多人会把它联想到短路,划重点:一个是逻辑,一个是电流出事啦!它们半分钱关系都没有。
运算符优先级,相当于我们说的先乘除后加减,不过Python中的运算符更多,涉及的内容也更多。
思考题开始:- (not 1) or (0 and 1) or (3 and 4) or (5 and 6)
- or (7 and 8 and 9)
- 4
复制代码
这就有意思了,它既像上节课小甲鱼挖的坑,又设计到各种运算符优先级,这就要进入这节课的正餐部分了。
2.正餐开始!
上节课的我们学到的 2 个运算符:and 和 or,在 Python 对运算符的各种规定中,短路逻辑非常奇怪,它可谓是彻彻底底的做到了极客精神:方便。它的核心是:从左往右,只有当第一个操作数的值无法确定逻辑运算的结果时,才对第二个操作数进行求值。可以算是对逻辑运算的优化吧,减少了一次无意义的运算,如果在大项目里,其作用就非常明显了,毕竟一寸内存一寸金嘛!
记得小甲鱼挖的坑吗?
运用短路逻辑来解释,第一道题的意思就是 and 运算符的要求是两边同时为真,而 3 的结果为真,结果就由 4 决定了,所以 Python 不再运算,而是直接抛出了结果 4 。第二题也是如此,因为 or 运算符只要一边为真,所以决定结果的就是 3 。
上面的结果都是 True 的,那我们再试一次 False 的
细细品味一下,因为 0 已经为 False 了,所以结果由 9 决定。
因为第一个值就是 False,所以直接拿出 0 就好了。
回到思考题,因为 3 and 4 结果为 4,or 运算符遇见了 4 这个为 True 的结果,自然只用将 4 扔出来就好了。
讲到运算符优先级了,话不多说,下面的图按从高到低列出了 Python 的运算符优先级优先级。
3.饭后甜点
最后来养眼:崩坏3 琪亚娜
|
评分
-
查看全部评分
|