【Python】Python3の標準出力に大苦戦【paiza】
最近、手軽にブラウザでプログラミングの問題を解ける、いわゆる競技プログラムなどの学習プログラミングが流行っている。Atcoderやprogateもそうだが、ストーリーなども楽しめるのが、paizaだ。
最近python3でも問題を回答できるようになり、あすますバライティ豊かになった注目のサイトだ。
しかし、このpython3で回答するにあたり、標準出力で大いにハマったので注意事項・丸暗記推奨として書き残しておくことにする。
目次
対paizaのためのpython3標準出力丸暗記事項
1文字のみの例
1 2 3 |
例: # 1 と入力したい。 l=input() |
文字列として出力される。
複数文字が縦に連なる例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
例: # 1 # 3 # 5 と入力したい。 # 一般的には a = input() b = input() c = input() # 内包表記でこう書くのもアリです! l = [int(input()) for i in range(3)] # ※入力が整数なのでint()にしている。文字列ならint()を取ること。 # ※その後の操作でlist型で扱うことの方が多いのであえてこの形で書いた。 |
リストとして、3個 出力される。
横に一つ飛ばしになってる例
1 2 3 4 5 6 7 8 9 |
例: # 1 3 5 と入力したい。 ## 普通にすると a,b,c = map(int, input().split()) ## リストでとるなら l = list(map(int, input().split())) # ※整数値で取得する場合は、map関数と併用しなくてはいけなくちょっとややこしいかも? |
まとめ
競技プログラミングになれていない人は、input()を使うのに抵抗があるのかもしれません。しかし、毎度使うのでイデオムを覚えるかのように覚えておく、または、チートシートを作るようにしないと大きなタイムロスになります。Paizaのスキルチェックは、1発勝負なのである程度時間を使って正解する方がランク的にもいいかもですね。(レートは下がる可能性もありますが)
個人的には、Paizaのスキルチェックは良いとは思いますが、いかんせん解いたら終わりで他人のソースから学ぶことができないので、自己満足感が否めません。ゲーム感覚でやるならいいかもですが、ちゃんとソースを学ぶならAtCoderのAランク問題だけでも制覇しておくことを強く勧めます。
いろいろな問題を解いてプログラミングスキルを向上させてください。
プログラマーは手を動かしてなんぼというのは間違いではありません。
本を読んでプログラムを打てるようになるというのは、体のいい妄想だと思います。
あったら安心 Pythonおすすめ書籍
最初の2冊は初心者向けです。Effectiv Pythonはこの2冊を終えてから読むとかなりわかりやすく感動できると思います。
|
|
|