pythonのorとand

2518 ワード

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を使用する場合、まず最初の式が空であるかどうかを判断し、最初の式が空である場合、2番目の式が実行され、2番目の式の値が返されます.andを使用すると、最初の式が空の場合、2番目の式を実行する必要がないため、最初の式の値が返されます.Javaの「&&」と「|」の理念に似ています.簡単な概要は、orとandを使用すると、左から右に式が実行され、ある式を実行した後、全体的な式が空であるかどうか、空でないかどうかを判断できる場合、その後の式は実行されません.