2014-09-02 117 views
1

在一个Hadoop reduce程序的例子中,存在这样一个“if”语句。我想知道是什么 同一变量“a”在“如果”语句中使用两次时表示,如下这个“if”语句是什么意思?

if a and a == b: 
    print "It is working!" 
+0

这意味着你正在检查以确保'a'存在/不是'False'且'b'等于'a'。 – RevanProdigalKnight 2014-09-02 18:24:12

+0

基本上,如果'a'存在或不是假 - 并且'a'等于'b'则打印该语句 – Jay 2014-09-02 18:24:16

回答

6

它将测试相等(a == b)只有a是truthy。

它可以改写为

if a: 
    if a == b: 
     print("It is working!") 

注意运算符优先级:这是等于if (a and a) == b

+2

这个答案从优秀到卓越的评论都很好。 – SethMMorton 2014-09-02 18:36:31

4

这里没有真正的魔法。

and表达方式如果双方都是真的。

a是真的如果它不是False,None,0数字0或空集合。

a == b is truthy iff a and b是相等的(在某种意义上适合于它们的类型)。

因此,举例来说,如果ab可以是一个列表或None,这将如果a是一个非空列表和b是一个非空列表具有相同的价值观是真实的。