私が知る限り、C & C++では、NOT AND & ORの優先順位はNOT> AND> ORです。しかし、これはPythonで同様に動作するようには見えません。私はPythonのドキュメントでそれを検索しようとしましたが、失敗しました(私はちょっと気をつけています)。誰かが私のためにこれをクリアすることはできますか?論理文の優先順位PythonのNOTと&OR
答えて
not
はそうではないですが、AND、OR、最高から最低までのマニュアルに従って、ここで https://docs.python.org/3/reference/expressions.html#operator-precedence
は完全な優先順位表であるlanguage reference
に述べたようにor
より緊密な結合するand
よりタイトに結合します最も低い優先順位から最も高い優先順位まで。行が
- ラムダ
- 左から右に同じ優先順位とチェーンを有する場合 - そう
- 又は
- としないで、内
- ないX
- 、であり、ではありません、<,< =>、> =、!=、==
- |
- ^
- &
- < <、>>
- +、 - **
- *、/、//、%
- + X、-X、X〜
- x [インデックス]、x [インデックス:インデックス]、x(引数...)、x.attribute
- (式...)、[式:]、{キー:値...} 、{式。 ..}
EDIT:、最弱から最強に、間違った優先順位のブール演算子の
これは相対的な順序ですが、どれが優先順位が高いですか? –
おっと、それは私の自己を混乱させました。ありがとう! –
算術演算子よりも優先順位が高い場合、 '**'には脚注にいくつかの例外があることに注意してください。 –
優先順位を持っていた以下の通りである:
or
and
not x
is not
;not in
演算子が等しい優先順位の評価は、左から右へと進みます。
申し訳ありませんが、あなたの#2は技術的には正しいですが、依然として非常に誤解を招くことです。まず第一に、ドキュメントは変更されていないようです。第2に、あなたの意見#2( 'と'と 'not x'が左から右に評価されていると示唆している)は公式の効果と技術的に同等ですが、単にcond1とcont2ではなくcont2最初はデフォルトです。 – RayLuo
@RayLuoありがとうございましたが、それは_technically_正しいものではありませんでした。私は間違ってレンダリングされた行にそのテーブルの行を分割して意味を付けました。 2.7 docを見て_today_ 'または'と 'と'は_Firefox_ではなく_Opera_を使って同じセルにあるように見えます。 'と'と 'と'の間の優先順位の違いは明白である(例えば、 '1または0と0'と '(1または0)と0')あなたが与える理由。ドキュメンテーションの意味を反映するように答えを修正します。 –
C/C++などの十分に確立1(ほぼ)内の他のすべてのプログラミング言語、よりそれらの演算子の他優先順位を持っているPython用は良い理由はありません。
あなたはザ・パイソン言語リファレンス、部分6.16でそれを見つけることができます - https://docs.python.org/3/download.htmlから演算子の優先順位、ダウンロード可能(現在のバージョンのため、他のすべての標準の文書を詰めた)、またはこちらのオンラインそれを読む:6.16. Operator precedenceを。
しかし、あなたを誤解させることができ、Pythonで何かまだある:結果and
のとor
演算子はTrue
またはFalse
から異なるかもしれ - 同じドキュメント内6.11 Boolean operationsを参照してください。
and
とor
の優先順位を調べるには、次のテストを実行できます。
まず、or
が最初に結合した場合、我々は出力として0
を期待
のpythonコンソールで0 and 0 or 1
を試してみてください。
私のコンソールでは、1
が出力されます。これは、最初にor
にバインドする(おそらく式が左から右に評価される)and
を意味します。
次に、1 or 0 and 0
を試してください。
or
とand
が組み込みの左から右の評価順序と同じにバインドする場合は、0
を出力する必要があります。
私のコンソールでは、1
が出力されます。それで、は、or
より高い優先度を持っていると結論づけることができます。
- 1. どの論理演算子が優先順位を取るか
- 2. プロセスの優先順位とスレッドの優先順位
- 3. Pythonの平等の優先順位
- 4. MySQLの優先順位順
- 5. 優先順位キューマルチスレッド
- 6. ANTLRルールの優先順位
- 7. C#エクステンションメソッドの優先順位
- 8. JOINの優先順位は?
- 9. Rails3ルーティングの優先順位
- 10. express.jsのルータ優先順位
- 11. MVCルーティングパラメータの優先順位
- 12. JPAカスケードタイプの優先順位?
- 13. 〜の優先順位と++ Javaの
- 14. #defineとconst宣言の優先順位
- 15. インスタントvs LocalDateTime - 他の優先順位を優先する場合
- 16. Menhir/Ocamlyaccの演算子の動的優先順位と優先順位の指定
- 17. Solrのクエリの優先順位
- 18. 機能のオーバーライド、オンロードの優先順位
- 19. 中置フォームのアプリケーションの優先順位
- 20. robots.txtの優先順位の問題
- 21. シェフの料理本の属性の優先順位
- 22. Pythonの演算子の優先順位を変更する
- 23. Pythonスレッドのスケジューリング優先順位の制御?
- 24. 優先順位キューの優先順位を変更して、要素の順序を維持する
- 25. JavaScriptのパブ/サブ - メッセージの優先順位の問題よりも、議論の
- 26. リアルタイムスレッドの優先順位から
- 27. ASP.NETリクエストの優先順位付け
- 28. 優先順位付けjqueryのイベント
- 29. REST APIパラメータの優先順位
- 30. ASIHTTPRequest:リクエストの優先順位付け
オペレーターの優先順位が、そうではないと思われる場合の例を挙げることができますか? – dodgethesteamroller