概要
最近AtCoderを始めたのでPython用の環境を作りました。 割といい感じにできた気がしましたのでTemplate Repositoryにしています。これから始める方、AtCoder上で書いている方などは是非試してみてください。
一方、まだ私自身が使い込んでいないので、既に環境ある方やAtCoderをある程度やり込んでいる方には不満があるかもしれません。 何かありましたら Issue や Twitter などでご連絡頂けたら助かります。
導入ツール
- devcontainer
- VSCode, Git, DockerさえあればOK
- black
- 自動フォーマット
- online-judge-tools
- VSCode上でテストを実行
- atcoder-cli
- atcoder-python-snippets
環境作成(ローカルのVSCodeの場合)
- テンプレートリポジトリを元にリポジトリを作成
- ローカルにclone
- VSCodeで開く
- DevContainerで開く
※この文章でわからなければ README を参照してください。
環境作成(GitHub Codespacesの場合)
- テンプレートリポジトリを元にリポジトリを作成
- GitHubで作成したリポジトリを開く
- Code → Open with Codespaces → New codespaces
※特にCodespaces用の設定はしていないので不具合があったら教えてください
回答までの流れ
※VSCode内のターミナルでコマンドを実行します
- ログイン
acc login
oj login https://atcoder.jp/
- contestID を取得
https://atcoder.jp/contests/abs
の場合、abs
- ディレクトリ作成(問題を選択)
acc new ${contestID}
- 例:
acc new abs
- 回答する問題のディレクトリに移動
cd {contestID}/{問題}
- 回答を作成
main.py
に回答を記載
- 回答をテスト
ojt
- ※
oj t -c "python main.py"
と同じ
- 回答を提出
acc submit
acc s
と同じ
使用例
acc new abs cd abs/practicea/ vi main.py ojt acc s
QA
テンプレートファイルを変更したい
templates/py/main.py
を変更してください
独自のスニペットを追加したい
.vscode/python.code-snippets
を作成し、以下のように記載する
{ "input number": { "prefix": ["input-n"], "body": ["import sys\nn = int(sys.stdin.buffer.readline())"], "description": "input number." } }