为什么True and 'a=T' 计算结果是 'a=T'
a = True
print a and 'a=T' or 'a=F'
a = True
print a and 'a=T' or 'a=F'
2017-04-03
这个主要是因为逻辑运算符(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
举报