猿问

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

True or False   # ==> True
False or True   # ==> True

为什么不能理解为只要有一个为假,结果就是假呢?

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

分解开 

a and 'a=T'  结果为 False

False or  'a=F'  难道这里的‘a=F’代表的是True? 可又不返回True,而是值 

Python是怎么解析的?

婧享年华
浏览 3274回答 3
3回答

asdhjhg

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

习惯受伤

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'

孤独的小猪

应该是python的or运算,只要有一个是True,结果就是True。a = False print a and 'a=T' or 'a=F' # ==> a='F' a and 'a=T'是False,而字符串'a=F'是True。所以应该返回字符串。
随时随地看视频慕课网APP

相关分类

Python
我要回答