2016-09-07 10 views
2

私は次の式を評価:Pythonの優先順位のルール

1か(1/0)とルール(優先順位、短絡評価など)を取得するために続いているされているどのような1

を答えは

+0

この質問はまだ尋ねられていません。 PythonのNOT AND&ORの優先順位を指している質問は、ここで行われている短絡評価には対応していません。 –

答えて

1

Pythonの短絡を評価します。あなたの例では、表現

1 or (1/0) and 1 

は最初1での評価を終了しTrueを返します。

最小限の例は、Pythonの短絡評価を示すのに役立ちます。式を考えてみましょう:

(1/0) or 1 

これは(1/0)の評価の際にZeroDivisionError例外が発生します。しかし、式:

1 or (1/0) 

短絡はTrueと評価されます。サブ式(1/0)が評価されないため、例外は発生しません。

2

b or anything_elseは、anything_elseを評価せずに、bがtrue-ishであればbを返すように定義されています。あなたの最初の1はtrue-ishなので、あなたの1/0は決して評価されないので、エラーはありません。 「true-ish」とは、Trueブール値だけでなく、Pythonが真であると考えるあらゆる値を意味します。最初の1の代わりにTrueを使って式を試してみてください。

+0

この情報を含む公式文書へのリンクを掲載できますか? –

+0

Python 2の場合:https://docs.python.org/2/reference/expressions.html#boolean-operations –

関連する問題