「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)
↓実行結果
「ウォルラス演算子」が演算されていることがわかります。
コメント