2014-09-02 198 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是一個非空列表具有相同的價值觀是真實的。