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

《Python入门》布尔值运算的困惑

《Python入门》布尔值运算的困惑

婧享年华 2017-03-30 14:56:53
True or False   # ==> True False or True   # ==> True为什么不能理解为只要有一个为假,结果就是假呢?a = False print a and 'a=T' or 'a=F' # ==> a='F'分解开 a and 'a=T'  结果为 FalseFalse or  'a=F'  难道这里的‘a=F’代表的是True? 可又不返回True,而是值 Python是怎么解析的?
查看完整描述

3 回答

已采纳
?
asdhjhg

TA贡献4条经验 获得超4个赞

python中,‘a=f'是认定为True的,a事先已经声明为False,所以就很容易理解啦,与运算:两个都是True才是True;or运算一个为True就是True!

如果不懂原理的话,其实很好理解,什么是布尔值?简单来说一真一假,开关开灯亮是true,开关关灯灭为false,串联是与门并联为或门,整个计算机都可以理解为无数个门组成,有与门,或门,与非门,或非门,异或门,通货门,早期计算机,就是通过这些门组成加法器减法器等等,这些门中有包含'开关'、'继电器',然后通过'开关'控制继电器,带动整个计算机运转,这一切都离不开布尔运算,包括二进制与逻辑门,这些说了就说不完了,反正原理不懂就去看看书吧,看一些基本知识再回来理解这些true,false之类的会有新体会!

查看完整回答
1 反对 回复 2017-03-30
?
习惯受伤

TA贡献885条经验 获得超1144个赞

or运算,只要有一个条件为 True,则结果为True。

and运算,只要有一个条件为 False,则结果为False。

解析:

a = False

先分解运算顺序,因为 and 和 or 优先级一样,所以从左到右计算:

print ((a and 'a=T') or 'a=F')

1、那么 a and 'a=T' ==> False,这里的 'a=T' 仅为字符串。不参与运算

2、因为 1 中的表达式已经是False,所以要继续计算:False or 'a=F',结果就是 后边表达式的值,所以结果为:a='F'

查看完整回答
2 反对 回复 2017-03-30
?
孤独的小猪

TA贡献232条经验 获得超302个赞

应该是python的or运算,只要有一个是True,结果就是True。

a = False
print a and 'a=T' or 'a=F' # ==> a='F'

a and 'a=T'是False,而字符串'a=F'是True。所以应该返回字符串。


查看完整回答
1 反对 回复 2017-03-30
  • 3 回答
  • 0 关注
  • 3206 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信