2017-06-04 12 views
-7
if ((medicine == target) and (engineering == target)) or ((medicine == target) and (education == target)) or ((medicine == target) and (arts == target)): 
    target += 1 

私はこれらの条件が満たされた場合、ターゲットをインクリメントする必要がありますが、想定されていない場合はコードを作成しています。なぜどんなアイデア?あなたは、これは、それが明確になりますよう== bと私やPythonで何が問題になっていますか?

+2

角括弧(および正しい字下げ)を追加して、どの序列を完成させるかを示します。 – jambrothers

+1

サンプル入力とそれに対応する期待出力を使用して、適切にフォーマットされたコードを表示できますか? – thefourtheye

+0

@jambrothersブラケットを追加する必要はありますか? – mdot

答えて

-2

私の知る限りでは、==は、前にチェックしますあなたが指図した順序。

if ((engineering == target) and (education == target)) or ((engineering == target) and (arts == target)): 
    target += 1 

括弧の配置方法によっては、結果が異なる場合があります。

これは一例に過ぎず、正しい順序を知るためにはまずロジックが何であるかを明確にする必要があります。

+2

これは完全に不明です。 A、B、Cとは何ですか?あなたは ''と ''が '=='の前に評価されると考えるかもしれないと思いますか? –

+0

OPはもともと彼のソースコードに3つの変数を持っていたので、私はそれらをA、B、Cと呼んだ。 –

1

異なる論理演算子をチェーン、それはブラケットを追加するのに役立ちます== Cをチェックする必要があるので、

+1

良いアドバイス。しかし、この場合、Pythonの優先順位ルールは、OPのコードの操作が完全なかっこのバージョンと同じ順序で実行されるように指示しています。だから、彼らが得ている結果を変えるつもりはない。 –

+0

@ PM2Ringはい、私はちょうど例を指摘するためにそれを更新しました。私たちの誰もOPのロジックは、残念ながら推測することはできません! – jambrothers

関連する問題