在一个Hadoop reduce程序的例子中,存在这样一个“if”语句。我想知道是什么 同一变量“a”在“如果”语句中使用两次时表示,如下这个“if”语句是什么意思?
if a and a == b:
print "It is working!"
在一个Hadoop reduce程序的例子中,存在这样一个“if”语句。我想知道是什么 同一变量“a”在“如果”语句中使用两次时表示,如下这个“if”语句是什么意思?
if a and a == b:
print "It is working!"
它将测试相等(a == b
)只有a
是truthy。
它可以改写为
if a:
if a == b:
print("It is working!")
注意运算符优先级:这是不等于if (a and a) == b
。
这个答案从优秀到卓越的评论都很好。 – SethMMorton 2014-09-02 18:36:31
这里没有真正的魔法。
和and
表达方式如果双方都是真的。
a
是真的如果它不是False
,None
,0数字0或空集合。
a == b
is truthy iff a
and b
是相等的(在某种意义上适合于它们的类型)。
因此,举例来说,如果a
和b
可以是一个列表或None
,这将如果a
是一个非空列表和b
是一个非空列表具有相同的价值观是真实的。
这意味着你正在检查以确保'a'存在/不是'False'且'b'等于'a'。 – RevanProdigalKnight 2014-09-02 18:24:12
基本上,如果'a'存在或不是假 - 并且'a'等于'b'则打印该语句 – Jay 2014-09-02 18:24:16