まえがき
どうも、著者のLinです。本当に無名の端くれですが、
本当にわかりやすく書いているので多分初心者でもわかりやすいと思います。
あとここに書いているのはかなーり基礎的な内容です。
本当に学びたいならもっと他のサイトの方がよっぽど参考になると思います。
今回は初心者向けに、
Pythonで入力を受け取って変換するまでの大体のパターンをまとめました。
この標準入力ネタはどこの界隈でも擦られすぎて$n$番煎じどころか$n^2$番煎じだと思ってます。
入力テンプレート(解説付き)
#この辺りは本当に基礎の基礎。使えないとコードを書けないレベル。
#使用頻度:★★★★★ 難易度:★
string_data = input() #文字として受け取る
number_data = int(input()) #文字として受け取ったものをint型に変換
※基本的に使う型はint、string、list、場合によりfloatぐらい。他は大体代用品があります。
このコードを書いた時に読み取るのは1行分まとめて!
1 2
のような入力は、int(input())
では読めません。
(後でこれを読めるようなコードを説明します)
#ちょっと応用してみよう 使用頻度:★★★ 難易度:★
number_data_1,number_data_2=int(input()),int(input())
実はただ横並びになっただけである。,
で区切れば何個でも繋げられる。
そこまでいったら繰り返しを使ったほうがラクだと思うが…
1
2
のような縦に並んだ入力を読めるようになります。
#リストの入力をやってみよう(文字) 使用頻度:★★★★ 難易度:★★
string_list = list(input())
#['f','o','o']←こんな感じに入ってます
文字のリスト化を行うと1文字ずつリストに入っていき1文字ごとの処理がしやすくなります。
ここから難易度少し上がります
#リストの入力をしてみよう(文字列) 使用頻度:★★★★★ 難易度:★★
multi_words_list = list(input().split())
#['foo','bar']
さっきのlist_io.py
と一緒っぽいことしてるけど何が違うの?と言われそうですが、.split()
というものが結構重要です。(というかそこをなくしたら一緒になる)
.split()
はstring型で使える関数(厳密にはメソッドだが)のひとつであり、()内で指定した文字で区切られ、リストとして返ってくる。
次にやりたいことこそ、1 2
のような空白区切りの入力を読むことです。
一応今まで習った知識だけでも一応書けないことはない。(非推奨)
まず紹介するのは今までに習った入力方法で書いてみる。
#リストの入力をしてみよう(数字) 使用頻度:★★★★★ 難易度:★★★
string_numbers_list = input().split() #まず文字として受け取る
numbers_list = [] #変換したリストを受け取るリスト
for i in string_numbers_list:
i = int(i)
numbers_list.append(i)
#[1, 2]
ちょっと応用した書き方だが、このような書き方もある。
ちなみに.append()
はリストの1番後ろに要素を追加する関数である。
#これは無理に覚えようとしなくていい
numbers_list = list(map(int,input().split()))
ここで突然出てきたmap
関数の使い方だが、
今のところこの関数をリストに対してやってくださいぐらいの認識で問題ない。
入力受け取り・応用編
ここからは大体ここまでの入力受け取りの合わせ技である。その一部を紹介。
複数変数を一気に読む
a,b,c = map(int,input().split())
縦に並んだリストを読む
x,y = [],[]
for i in range(リストの長さ):
xy=input().split()
x.append(xy[0])
y.append(xy[1])
あとがき
今回記事を初めて書いてみて、意外と書く内容が思いつかず思ったとしてもなんか違ったりと
苦戦しました。なのでこれから精進します。