为了账号安全,请及时绑定邮箱和手机立即绑定

不懂布尔运算

True and 'a=T' 计算结果是 'a=T' 继续计算 'a=T' or 'a=F' 计算结果还是 'a=T'   有大神解释下这个是为什么吗,第一个为什么不是true,二是a=t,后面为什么结果是a=t不是a=f???

正在回答

4 回答

a = True
print a and 'a=T' or 'a=F'

首先看前一部分,a and 'a=T',由于运算符是and,所以只要二者有一个为FALSE,结果便为FALSE,第一个a是TRUE,那么a and 'a=T'整体的结果便取决于'a=T',因而返回'a=T'。

现在就变为了 'a=T' or 'a=F',运算符是or,所以所以只要二者有一个为TRUE,结果便为TRUE,从前向后看,'a=T' 已经是TRUE了,不管后面的 'a=F'是true还是FALSE,结果都为true,因此结果取决于 'a=T',返回 'a=T'。

1 回复 有任何疑惑可以回复我~
#1

weibo_Puss_欣怡_0 提问者

非常感谢!
2017-03-26 回复 有任何疑惑可以回复我~
#2

weibo_Puss_欣怡_0 提问者

谢谢!明白了
2017-03-26 回复 有任何疑惑可以回复我~

逻辑与和逻辑或啊。。

在运算过程中,两边的值转成Boolean 类型,然后再算值 ,与运算如果返回true,则取后面的值,或运算返回true,则取前面的值 。


1 回复 有任何疑惑可以回复我~

记得口诀:

and运算:在计算a and b时,如果a是false,则整个结果必定为false(只有两者都为True时候整个结果为True),因此返回a,如果a为True时,那整个结果取决于b,所以返回b

or运算:如果a时True,则整个结果一定为Tru(其中一个为真则为True),返回a值,如果a为false,则取决于b值,返回b

1 回复 有任何疑惑可以回复我~

首先请百度:短路计算法则.  其次,在布尔计算中,'a=T'被视为True. 

接下来,看具体分析:

True and 'a=T' 运算时:因为 'and'前面是True,计算结果取决于and后面的 'a=T'的True/False,所以结果是 'a=T';

'a=T' or 'a=F' 运算时: 因为'a=T'为True,所以 'or' 后面的不需要看,直接返回结果 'a=T'.

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

不懂布尔运算

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信