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 件
i > 3 < 5
のような演算子のチェーン と解釈されますi > 3 and 3 < 5
ここで、「中間」オペランドは、左右の演算子に対して繰り返されます。あなたが欲しい
3 < i and i < 5
、これは
3 < i < 5
のように省略できます(前の解釈の逆を使用)。 。
関連記事
- Pythonで「ifnot」ステートメントが失敗するのはなぜですか
- Pythonのエラー:名前が定義されていません(ifステートメントの変数)
- 動的な方法で列名をSQLステートメントに渡します。Python- SQL Server
- Turtleを使用してPythonでx/y座標を照合するためのifステートメントの使用
- 最初のifステートメントはPythonによって無視されますが、elifでは無視されません
- Pythonのifステートメントで値の配列を作成します
- Python ifelseステートメントがtxtファイルを読み取っていない
- python if + elseifステートメント
- インデックス外のクエリセットを使用してPythonでIfステートメントを作成する最良の方法は?
- Pythonでifステートメントが無視されている
正しい構文は次のとおりです。
Pythonはここでは特別であり、この構成は他のほとんどの言語では機能しないことに注意してください(
3 < i and i < 5
のようなものを言う必要がある場合) 代わりに)。