2016-08-30 92 views
-1

这里的代码。请解释这个python代码的输出

a = False 
if a == True or True: 
    print "Hell yeah,I'm genius" 
else: 
    print "shit,I am a fool" 

输出 'Hell yeah,I'm genius'

+2

这里很少有解释。任何'或True'都将评估为'True',这意味着第一行将被打印。 – Karin

+0

@ karin谢谢你......我是一名python新手。因此,我将“False”分配给“a”并不意味着a是0吗?真或假== 1?然后我认为狗屎,我是一个傻瓜是输出.. –

+0

问题是与“或真”。删除这部分,你会得到“狗屎我是一个傻瓜”。由于“或真”每次如果条件得到满足,你越来越“地狱是啊我',米天才” –

回答

2
a ==True or True 

考虑真正的为1并且0是假的。由于a设置为False(在第一个语句代码中a = False),所以第一部分'a == True'即0 == 1将返回0(False)。

然后剩下的将是False或True,因为'a == True'是False。 所以它会像0或1(假或真)。

我们知道,

  • 0 AND 0 = 0
  • 1和0 = 0
  • 1 AND 1 = 1
  • 0或0 = 0
  • 0或1 = 1
  • 1 OR 1 = 1

所以你的情况,0或1将导致为1,即为真。

摘要:

a == True or True => False or True => True 

这就是为什么 “地狱啊,我是天才” 将被打印出来。

+0

非常感谢你......! –

-1

任何事情属实,这将运行部分...

if True: 

    print "Hell yeah,I'm genius" 

else: 

    print "shit,I am a fool" 

这其中也返回"Hell yeah,I'm genius"

+2

如果你发布这个答案,至少编辑它是正确的... – Julien

+0

当“”狗屎,我是一个傻瓜“”将在这种情况下打印? –

+0

@DineshPundkar如果你在Python2中,那么在运行这个例子之前,你可以说'True = False',它会给你想要的输出; – Pasha