1. ホーム
  2. python

[解決済み] Pythonでwhileループの条件に変数を割り当てる?

2023-06-20 08:44:05

質問

私はちょうどこのコードの部分に遭遇しました

while 1:
    line = data.readline()
    if not line:
        break
    #...

と思い、そこで に違いない という無限ループを使うよりも、もっと良い方法があるはずだと。 break .

というわけで、やってみました。

while line = data.readline():
    #...

で、明らかにエラーになりました。

を使用しない方法はありますか? break を使わないようにする方法はありますか?

編集してください。

理想としては readline を二度言うのは避けたいところですが...。IMHOでは、繰り返すことは、単に break を繰り返すのは、特にステートメントが複雑な場合、より悪いです。

どのように解決するのですか?

開始 Python 3.8 の導入、および の代入式が導入されました(PEP 572)。 ( := 演算子) で条件値を捕らえることができるようになりました。 data.readline() ) を変数として取り込むことができるようになりました。 line ) を変数として使用することで、ループの本体内で再利用することができます。

while line := data.readline():
  do_smthg(line)