前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >逻辑运算

逻辑运算

作者头像
人生不如戏
发布2018-04-12 11:10:05
7650
发布2018-04-12 11:10:05
举报
文章被收录于专栏:抠抠空间抠抠空间

一、逻辑运算符的种类及优先级

▷逻辑运算符包括 not and or 

▷他们的优先级是 () > not > and > or

二、普通逻辑运算

▷A and B --->  A和B都位真的时候结果为真,有一个为假结果即为假

▷A or    B --->  A和B有一个为真结果即为真

A和B可以为 bool值(True、False),可以为比较运算(3>1 、4<3 、1 !=1 )

三、两边为数字的逻辑运算

大家都知道,0可以用来表示bool值 False,而除了0之外的所有数字都可以表示bool值True,

所以说,逻辑运算两边也可以用数字表示

▷ or 运算

从上面的例子可以看出  A or B  ,当A的值为Ture的时候,返回的是A的值,当A的值为False的时候,返回的为B的值(A、B为数字类型就返回数字类型,为布尔类型就返回布尔类型)

A、B为比较运算的时候同样适用上面的那个结论

▷ and 运算

与or运算刚好相反,当运算符为and的时候,A and B ---> A若为真,则结果为B,A若为假则结果为A

四、总结

A  or  B    A为真,结果为A。   A为假,结果为B

A and B   A为真,结果为B,   A为假,结果为A  

PS:

▷ A或者B为数字的时候,返回的就是数字,A或B为布尔类型或者比较运算的时候,返回的值为True或者False

▷ or与and的结果恰好相反,记一种即可

其实往深层次想一下,之所以会有这样的结果,跟计算机运算逻辑有关
我们都知道,A and B ,两边均为真的时候结果才为真,而如果计算机检测到A为False的时候,那么不管B为何止何值,结果均为False,所以计算机只需要返回A的值即可
它甚至不会去读B的值,所以结果不可能会是B,为了验证这个猜测,我们给B赋一个毫无逻辑性的东西试一下
大家可以看到,计算机检测到 and 前面为0(False)的时候,它就不会去检测后面的值了,所以我们输入了一串乱七八糟毫无逻辑的字符串它还是不会报错,直接返回0
而如果计算机检测到A为True的时候,那么它才会去检测B的值,B为真,结果为真,B为假,结果为假,所以只需要直接返回B的值即可(当然,B就不能为毫无逻辑的字符串了)
同理,当A or B的时候,两边有一个为真即为真,所以如果A为真的话,计算机就不会去检测B的值,直接返回A的值,验证如下:
而当A为假的时候,它才会去检测B的值,B为真,结果为真,B为假,结果为假,所以只需要直接返回B的值即可,这就能很好的理解上面的结论了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、逻辑运算符的种类及优先级
  • 二、普通逻辑运算
  • 三、两边为数字的逻辑运算
    • 从上面的例子可以看出  A or B  ,当A的值为Ture的时候,返回的是A的值,当A的值为False的时候,返回的为B的值(A、B为数字类型就返回数字类型,为布尔类型就返回布尔类型)
      • 与or运算刚好相反,当运算符为and的时候,A and B ---> A若为真,则结果为B,A若为假则结果为A
      • 四、总结
        • 其实往深层次想一下,之所以会有这样的结果,跟计算机运算逻辑有关
          • 我们都知道,A and B ,两边均为真的时候结果才为真,而如果计算机检测到A为False的时候,那么不管B为何止何值,结果均为False,所以计算机只需要返回A的值即可
            • 它甚至不会去读B的值,所以结果不可能会是B,为了验证这个猜测,我们给B赋一个毫无逻辑性的东西试一下
              • 大家可以看到,计算机检测到 and 前面为0(False)的时候,它就不会去检测后面的值了,所以我们输入了一串乱七八糟毫无逻辑的字符串它还是不会报错,直接返回0
                • 而如果计算机检测到A为True的时候,那么它才会去检测B的值,B为真,结果为真,B为假,结果为假,所以只需要直接返回B的值即可(当然,B就不能为毫无逻辑的字符串了)
                  • 同理,当A or B的时候,两边有一个为真即为真,所以如果A为真的话,计算机就不会去检测B的值,直接返回A的值,验证如下:
                    • 而当A为假的时候,它才会去检测B的值,B为真,结果为真,B为假,结果为假,所以只需要直接返回B的值即可,这就能很好的理解上面的结论了。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档