あらすじ
【テストコンテスト】本日午後9時からの一時間の開催です。新しいジャッジシステムの負荷テストを兼ねたコンテストです。
— AtCoder (@atcoder) April 5, 2020
ABC-Dクラスまでの優しい問題のみのコンテストとなります。ぜひご協力ください。
Judge System Update Test Contest 202004 - AtCoder https://t.co/FrH9qcXkjT
そういえばAtCoderの言語アップデートに伴いPython3の仕様が変わっているようだ。最近はGoでやってるし、自分の知識は3.5あたりで止まっているので取り急ぎdiffを読んだりした。(なおGoのアップデートに関しては書く予定はない)
競プロに直結する(ため、しばしば待望の機能だと目されている)gcdとか。個人的にはgcdってスニペットにすら用意してなくて毎回フルスクラッチで書いてるんで気にしたこと無いけど
個人的には3.6.xから文字埋め込みがformat
を使わずに済むようになった、というのが目を引く。デバッグするときよく使っていたのだが
以前のバージョンが3.4.3で、condaで管理しているAtCoder用の仮想環境のバージョンもそれに合わせていた。この機会にアップデートする。結論からいえば対象の環境にインストールするだけで終わった
対象の仮想環境
(base) h4l:~ hal$ conda activate 4atcoder (4atcoder) h4l:~ hal$ python3 --version Python 3.4.3 :: Continuum Analytics, Inc.
これをアプデする。
方法
思いついた方法はいくつかあって、
conda clone
する- 現行環境で
requiements.txt
を吐き出して新しくconda create
がまっさきに浮かんだが、よくよく考えればconda install
で依存関係が解決されるので、単純にこれでいけそうなのでそれでいくことにした。むしろこっちのほうを思いつけ。なぜまわりくどい方法を取ろうとするのだ...
condaで対象の仮想環境に任意のバージョンのpythonを入れる
ということでconda install -n <env name> python=<>
(base) h4l:~ hal$ conda install -n 4atcoder python=3.8.2 Collecting package metadata (repodata.json): done Solving environment: done .... The following packages will be UPDATED: .... python pkgs/free::python-3.4.3-2 --> pkgs/main::python-3.8.2-hc70fcce_0 ....
よさそうですね
確認
さっきと同じ手順でアクティベートして確認するだけです。わくわく
(4atcoder) h4l:~ hal$ python3 --version Python 3.8.2
🎉
verify
記事の最初に個人的に気になってたf-string記法を使えば文字列内に式を埋め込めるので、例えばABC166 - Aはこのようにかけて便利だね
print(f"{'ABC' if input() == 'ARC' else 'ARC'}")
f-stringについてはこちらを参照。 note.nkmk.me
ところで
今日(2020/05/04 JST)現在、過去問ではまだ言語アップデートがされていないのでつらい