:= セイウチ演算子(代入式)
最終更新:2026-09-22
:= セイウチ演算子(代入式)
:= は PEP 572 で導入されたセイウチ演算子で、式の中で代入を行い値を返します。
| カテゴリ | 演算子 |
|---|---|
| 種類 | 演算子 |
| Python バージョン | 3.8+ |
📝 構文
name := value
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
3.0
3.0
💡 ヒント := は if / while の条件で高コストな計算を再利用するのに適しています。
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
Q`:=` と `=` の違いは何ですか?
A`:=` は式です:`if`、`while` などの条件の中で値を代入しつつ、その値も返せます。`=` は文であり、式の位置には書けません。`if (x = 5):` は構文エラー、`if (x := 5):` は有効です。
Q`:=` にはどの Python バージョンが必要ですか?
A3.8 以上(PEP 572)です。3.7 以下では `SyntaxError: invalid syntax` になります。
Q`:=` の定番の使い方は何ですか?
A`while` で読み込みながら判定する:`while (line := f.readline()):` で1行ずつ処理。あるいは高コストな計算を条件内で使い回す:`if (root := math.sqrt(x)) > 2:` で `root` を直接使う。
Q`:=` を使うべきでないのはいつですか?
A使わずに済むなら使いません。普通の代入の方がたいていの場面で明快で、海象演算子を多用すると可読性が下がります。PEP 572 の提案は「繰り返し計算を避け、ロジックをよりコンパクトにするときだけ使う」です。