pythonでのショートロジック
3595 ワード
ショートロジックのルールは次のとおりです.式は左から右に演算され、orの左側の論理値がTrueであれば、orを短絡した後のすべての式(andであれorであれ)は、orの左側の式を直接出力する.orの左側の論理値がFalseである場合、orの右側の式が出力され、その後の式が真であるか偽であるかにかかわらず、式全体の結果が後の式の結果 となる.式は左から右に演算され、andの左側の論理値がFalseである場合、orが現れるまで短絡し、and左側の式をorの左側に出力し、次の論理演算に参加する.andの左側の論理値がTrueである場合、その後の式が真であるか偽であるかにかかわらず、式全体の結果が後の式の結果 として出力. orの左側がFalse、またはandの左側がTrueであればショートロジックは使用できません.注意:1、Pythonではandの優先度がorより大きく、andとorは値を返し、TrueとFalseに変換されません.notとandおよびorが一緒に演算される場合、優先度はnot>and>or 2、PythonではNone、任意の数値タイプの0、空文字列"、空メタグループ()、空リスト[]、空辞書{}がFalseとして扱われ、カスタムタイプが実現された場合_nonzero __ ()または_len __ ()メソッドでメソッドが0またはFalseを返すと、そのインスタンスもFalseとみなされ、他のオブジェクトはTrueとなります.
特殊な場合(andとorの三目演算子):
result=xはまず条件xがyの真偽より小さいと判断し、真andであればxを返し、x or yを計算する.偽の場合、andはFalseを返し、False or yはyを返すに違いないと計算します.
C#、C++などの言語を知っている人は、三元演算オペレータをよく知っています.
boolが真であればa,そうでなければbである.それに応じてPythonに変換するスタイルは以下の通りです.
解析:まずa,bはすべて真で、これはデフォルトです.boolが真であればbool and aが真であり、出力a、短絡bである.boolが偽の場合、短絡a、直接bool or b、出力b.
もっと簡単な書き方に変えてください.
拡張:
次の例は、ショートロジックの原理を理解するのに役立ちます.
特殊な場合(andとorの三目演算子):
result=xはまず条件xがyの真偽より小さいと判断し、真andであればxを返し、x or yを計算する.偽の場合、andはFalseを返し、False or yはyを返すに違いないと計算します.
C#、C++などの言語を知っている人は、三元演算オペレータをよく知っています.
bool ? a : b
boolが真であればa,そうでなければbである.それに応じてPythonに変換するスタイルは以下の通りです.
bool and a or b
解析:まずa,bはすべて真で、これはデフォルトです.boolが真であればbool and aが真であり、出力a、短絡bである.boolが偽の場合、短絡a、直接bool or b、出力b.
もっと簡単な書き方に変えてください.
return a if bool else b
拡張:
次の例は、ショートロジックの原理を理解するのに役立ちます.
>>> 0 and 2
0
>>> [] and 2
[]
>>> 2 and {}
{}
>>> [] and {}
[]
>>> 2 and 5
5
>>> 5 and 2
2
>>> 0 or 2
2
>>> 2 or []
2
>>> False or 5
5
>>> [] or {}
{}
>>> {} or False or []
[]