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

为什么True and 'a=T' 计算结果是 'a=T'

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


正在回答

5 回答

这个主要是因为逻辑运算符(and,or)计算规则决定的,

a and b 的计算规则是 :

先判断a 是否为真(true/非零),继续判断b是否为真,如果b为真,最后返回b,否则返回0/false

如果判断a为假(false/零),直接返回假/0

例如: print 0 and 1 返回0

            print 1 and 2 返回 2

b or a 的规则是只要一个为真就返回

这里"a and 'a = T' or 'a = F'" 根据优先级先判断and,

首先判断a, a = True 是非零,

继续判断 字符串'a = T',也是非零,此时就返回a = T

后面是个有个or,因为or前面的值已经是非零了,所以就不需要判断后面的a=F

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

这个不错 解惑了

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

这个地方的计算分两步,先是and后是or.

and前面的a是true,所以and运算的结果由and后面的决定,于是返回了a=T

因为a=true 所以a=T是true,而or 运算是由true的那个决定的,既然前面这项是true,就没有必要再去判断or后面的是不是true了,这样子计算机的工作会简化一些,也被叫做短路计算。

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

短路原则

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

运算时,a and b 如果,a为false,那么结果为a ,不再运算b的结果,a为true是,要看b的结果。如果为true,那么结果为b

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

举报

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

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

进入课程

为什么True and 'a=T' 计算结果是 'a=T'

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