:= セイウチ演算子(代入式)

最終更新: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 の提案は「繰り返し計算を避け、ロジックをよりコンパクトにするときだけ使う」です。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%