Python ウォルラス演算子でつまずいた話

プログラミング

「Tkinter」を用いて「Python」でデスクトップアプリを作っていました。インターネットからサンプルコードを拾ってきて実行した際、構文エラーが発生しました。

エラー文を読んだところ「:=」のところで、構文エラーが発生しているようでした。


そこで、なぜ「:=」でエラーが発生するのか

より簡単なプログラムコードを使用して、考えてみました。

#使用した簡単なサンプルコード
x = [10, 20, 30, 40]

def f(x):
    return sum(x)


l = [x := f(x), x**2, x**3]
print(l)

出力結果は次のようになりました。



よはり、構文エラーが「:=」のところで発生しています。

つまり、現在私は使用しているPython環境では「:=」が認識されていないということがわかります。


ということで、「:=」について調べてみることにしました。

すると、「:=」という演算子は「ウォルラス演算子」といって、式の途中結果を代入することができる演算子でした。また、「ウォルラス演算子は」2019年にリリースされた「Python バージョン3.8」に導入されたものでした。

「Python バージョン3.8」から使用できるということなので、現在の自分のPythonのバージョンを確認してみました。

↑の画像のとおり、「Python バージョン3.7.6」でした。つまり、この環境では「:=」は使えないということですね。


それでは、Pythonのバージョンを「3.8」以上にしたいと思います。

試行錯誤したのですが、現在使用している 「Spyder(Anaconda3)」 のバージョンが3.7 より上げることができなかったため、アンインストールして再インストールしました。

再インストールの結果、↑の画像のとおり「Python バージョン 3.8.10」になりました。ということで、さっきは実行できなかった「ウォルラス演算子」を実行してみたいと思います。


x = [10, 20, 30, 40]

def f(x):
    return sum(x)

l = [x := f(x), x**2, x**3]
print(l)

↓実行結果

「ウォルラス演算子」が演算されていることがわかります。

コメント

タイトルとURLをコピーしました