Python 3.8 から導入された := は、代入と評価を同時に行える構文で、条件式やループ内での一時変数の代入に特に便利です [1]。恥ずかしながら、生成 AI とのコーディングのやりとりで話題になるまで、知らなかった演算子でした😳。
生成 AI (Microsoft Copilot) が次のようにまとめてくれました。
🦭 ウォルラス演算子( := )とは?
- 正式名称:Assignment Expression(代入式)
- 通称:ウォルラス演算子( := の形がセイウチ, walrus の目と牙に似ていることから)
- 導入バージョン:Python 3.8 (PEP 572 [2])
この演算子は、式の中で変数に値を代入しつつ、その値を評価に使うことができます。従来の = は文としてしか使えず、式の中では使えませんでした。
特に便利だと思う、正規表現を扱う時の例を備忘録としてまとめました。
ウォルラス演算子の利用例
import re
pattern = re.compile(
r"^[a-zA-Z0-9_+-]+(\.[a-zA-Z0-9_+-]+)*@([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.)+[a-zA-Z]{2,}$"
)
addr = "user@example.com"
if match := pattern.match(addr):
print(f"メールアドレスは '{match.group(0)}' です。")
else:
print(f"'{addr}' は無効なメールアドレスです。")
メールアドレスは user@example.com です。
電子メールアドレスを判別する正規表現は、参考サイト [3] を引用しました。
参考サイト
- What's New In Python 3.8 — Python ドキュメント
- PEP 572 – Assignment Expressions | peps.python.org
- メールアドレスの正規表現 | 正規表現入門
にほんブログ村
#オープンソース


0 件のコメント:
コメントを投稿