最近遊んでるpaiza.jpの話【Python3標準入力解決】


paiza.jpで遊んでいる話

独学でPGをやっている関係上、特定の分野にかまけていると数値処理などがだんだん怪しくなってくることが時折あります。
最近「あれってどうやるんだっけ・・・」となることが頻発していたので、 paiza.jpさんのスキルチェック講座でリハビリをしています。
この記事は

paiza.jpのスキルチェック楽しいんだけど、標準入力のせいで敷居が高くなっていて勿体ないな

ということが書いてある記事になります。+ 標準入力の解決も書きました。
解決だけ知りたい人は「スキルチェックにおける標準入力の解決」までどうぞ

paiza.jpとは

就職サイトに学習サイトなどがくっついている感じのサイト。当方転職活動中ですが、こちらのサービスは利用していません。作ったコードとか後述のスキルチェックでクリアした程度で紹介が来たり来なかったりだそうです。いろいろな言語をブラウザ上で環境作らずに気軽にかけるので、遊ぶ分には楽で楽しいです。

paiza.jpのスキルチェック

時間制限がある中でお題をコーディングしていく系のやつです。
S~Dレベルの問題がある中で、B問題くらいまではやってみました。
問題レベル的には数値処理ができればサクサクかけます。(~Cまでの感想)
時間まで計測されながらコーディングするのは初めての経験だったので、難易度も程よくゲーム感覚でなかなか面白いです。
C問題ではスピード込みで上位に入れてもらえて割とご満悦

paiza.jpの標準入力

ただ入力データ取り込みの「標準入力」がよくわからなすぎて、登録してすぐ手を付けた問題は投げました。(後日勿論タイムアップになりながらも解答)
一応ヘルプリンクはありますが、いま改めてみると、うーんまあわかるけど…って感じです。

helpcode.py
input_lines = int(input())
for i in range(input_lines):
  s = input().rstrip().split(' ')
  print("hello = "+s[0]+" , world = "+s[1])

当時の私はそもそも標準入力自体が怪しかったので、さっぱりでした。後日pythonの講座を進めていくと見つかった(リンク先の.05)ので、理解しましたが実際の能力とは別のところで若干敷居が高いハードルがあるものどうなんだろう…

スキルチェックにおける標準入力の解決

自分はここをみて解決しました。
入力データが連なっている方向で処理が異なります。
今のところこの組み合わせで標準入力はすべて解決しています。

一番原始的な処理

simple.py
#入力データが以下だったとする
#5

l=input()
#1つだけデータを取り出すならこれだけ。l=5となる。

縦に連なっている場合

取り組んだ問題のなかでは、こちらのほうが高頻度で使用しました。

tate.py
#入力データが以下だったとする
#5
#10
#15

n=3 #データ数。以下のnに直接入れてもok
l = [input() for i in range(n)]
#list形式で取得する。l=["5","10","15"]となる。
#整数として取得したい場合はinput()をint(input())とすればよい。

横に連なっている場合

yoko.py
#入力データが以下だったとする
#5 10 15

l=input().split() 
#list形式で取得する。l=["5","10","15"]となる。
#整数として取得したい場合はmapという関数を併用する。
#l = list(map(int, input().split()))

後記

スキルチェック楽しくて一生できるけど、眼精疲労なのか首がずっとじわじわ痛いです。
仕事で拘束時間が無駄に長いのと、いろいろなことに目が行き過ぎてどれも進捗が微妙なのが悩みです。また更新します。