python 中的or 和 and

    在看到python源碼的時候,有一句關於or的用法,當時很疑惑,以前一直認爲其用法類似與java中的"&&" 和 "||" ,返回的是boolean類型,結果當前是錯誤的,下面給大家分享一下python中的and和or關鍵字的用法。

    概念描述:

    空對象:None, "", [], (), {} 這些都是空對象,使用if、while等判斷是都是類似於False的情況,反之就是非空對象

    1、and

# 語法:[expression1] and [expression2]
# 結果組合形式:
# 1、expression1<空> : 當第一個表達式爲空時,返回expression1的值,expression2不會執行;
if __name__ == "__main__":
    print("" and "test")
    print(None and "test")
    print([] and "test")
    print({} and "test")
    print(() and "test")
# 輸出:"", None, [], {}, ()
# 2、expression1<非空> : 
# 2.1、expression2<空> : 返回expression1的值
if __name__ == "__main__":
    print("test" and None)
    print("test" and "")
    print("test" and ())
    print("test" and {})
    print("test" and [])
# 輸出:"", None, [], {}, ()
# 2.2、expression2<非空> :返回expression2的值
if __name__ == "__main__":
    print("test" and "testsuccess")
    print("test" and "OK")
    print("test" and (1,))
    print("test" and {"test":"success"})
    print("test" and [1,2])
# 輸出:"testsuccess" ,"ok", (1,),{"test":"success"},[1, 2]

    2、or

# 語法:[expression1] and [expression2]
# 組合形式:
# 1、expression1<非空> : 當第一個表達式爲非空時,返回expression1的值。
if __name__ == "__main__":
    print("yes" or "ok")
    print((1,) or "ok")
    print([1, 2] or "ok")
    print({"name":"ok"} or "ok")
# 輸出:yes、(1,), [1, 2], {"name":"ok"}

# 2、expression1<空> : 當第一個表達式爲空時,返回expression2的值
if __name__ == "__main__":
    print("" or None)
    print(None or ())
    print([] or {})
    print(() or [])
    print(() or "")
    
    print("" or "yes")
    print(None or (1, 2))
    print([] or {"test" : "success"})
    print(() or [1, 2])
# 輸出:None,(), {},[] ,"", "yes", (1,2),{"test" : "success"},[1,2]

    3、總結

    “or”和“and”都是返回最後執行的表達式的值,使用or時,先判斷第一個表達式是否爲空,如果第一個表達式爲空,那麼纔會執行第二個表達式,從而返回第二個表達式的值;使用and時,如果第一個表達式爲空,那麼不需要執行第二個表達式,因此返回第一個表達式的值。有點類似一java中的"&&"和"||"的理念。簡單概述就是如果使用or和and時,從左到右執行表達式,如果在執行某個表達式之後,就已經可以判斷整體表達式是否爲空,是否非空,那麼之後的表達式就不會再執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章