bugfix> python > 投稿
Python v3.6.5 PyCharmの実行ifおよびelseステートメントを含む単純なforループがあります。
for i in range(10):
    if i > 3 < 5:
        print(i, "first")
    else:
        print(i, "second")

私が得る出力は次のとおりです。
0 second
1 second
2 second
3 second
4 first
5 first
6 first
7 first
8 first
9 first

ただし、出力は次のようにはなりません。
0 second
1 second
2 second
3 second
4 first
5 second
6 second
7 second
8 second
9 second

自分で試してみてください。私には意味がありません。なぜこれをしているのですか?

本当に知る必要はありません

私はあなたが考えているかもしれないことを知っている、なぜあなたはただ言わなかったのか

if i == 4

しかし、これは私のプログラムの単純化された問題です。

前もって感謝します

ヒューゴ

回答 2 件
  • 正しい構文は次のとおりです。

    if 3 < i < 5:
    
    

    Pythonはここでは特別であり、この構成は他のほとんどの言語では機能しないことに注意してください( 3 < i and i < 5 のようなものを言う必要がある場合)  代わりに)。

  • i > 3 < 5 のような演算子のチェーン  と解釈されます

    i > 3 and 3 < 5
    
    

    ここで、「中間」オペランドは、左右の演算子に対して繰り返されます。あなたが欲しい

    3 < i and i < 5
    
    

    、これは 3 < i < 5 のように省略できます(前の解釈の逆を使用)。 。

あなたの答え