pythonの標準入力をローカルでやってみる
あらまし
pythonのローカル環境で、コーディングテストでありがちな標準入力を練習してみたお話です。
過去記事の一覧はこちら。 記事一覧 - Baggage Claim
コーディングテストの第一関門
就活でコーディングテストを受ける人も多いだろう。 しかし肝心のアルゴリズムを考える前に、標準入力からファイルを受け取るという関門が存在する。 こんなところで時間を食うのは本意なれ、ということでローカルで練習してみた。
準備するもの
- .txtファイル
- .pyファイル
やったこと
今回は以下のようなsample.txtを用意した。数字は空白で区切られている。 test.pyと同じディレクトリに置いておく。
test.pyはこんな感じ。sysをimportし、stdin.readline()で読み込める。
このままだと使いにくいのだが、split関数を使うとリストに格納される。 str型になっているので注意が必要だが、ここまでくれば扱いやすいものである。
次に、sample.textを2行にしたバージョンを紹介する。
リスト内包を使って1行ずつ読み込んでみる。まず素直にreadlineを使うとこんな感じ。
改行文字の \n が入ってしまう。これは、rstripを使うと取り除ける。strip("\n")でも良い。 1行しか読み込まない場合でも、念のためrstripをつけておくと良さそうである。 先程と同様にsplitを使えば、二重のリスト形式で受け取ることができる。
ここまで来れば適当にこねくり回して辞書なりなんなり使いやすいデータ形式に加工できるであろう。
実行するときは、ターミナルで python test.py < sample.txt と叩けば良い。
おわりに
AtCoderみたいな競プロでもこういう形式が使われるらしい。 そういう方々にスキルで太刀打ちできるわけがないのだ。