はじめに
今年は、paizaなどのサイトでプログラミングチェックを行うことが時々ありました。その際に手こずったのが、標準入力のコーディング方法です。
今回の記事では、自分へのメモ書きの意味も込めてPython3の標準入力の方法をまとめてみました。
標準入力にはinput関数
標準入力をするには、input関数を使います。input関数はキーボードに入力されたデータを受け取るためのの関数になります。
ただしinput関数は入力されたデータを文字列で扱うので、入力された数値をそのまま数値として扱い場合には、int関数またはfloat関数を使います。
また整数型の入力データ1をfloat整数で受け取った場合には、1.0になることにも注意が必要です。それでは、実際にコードを使って値を取得したいと思います。
1行に1つの文字列の入力を取得し、出力する
例)入力:s
str = input() # sを取得し、strに値を入れる
print(str) #出力:s
input()で入力文字列sを取得し、print(str)によってsの値を出力することができます。文字列の前後の空白を取り除くstrip()も用意されていて、
str = input().strip()
という書き方もできます。
1行に1つの整数の入力を取得し、整数として取得する
例)入力:i
int = int(input()) #iを取得し、intに値を入れる
print(int) #出力:i
入力整数iを取得し、整数iのまま出力します。
1行に複数の入力値を取得し、出力する
例)入力:s_1 s_2
s = input().split() #s_1 s_2を分割して取得し、sに値を入れる
print(s) #出力:['s_1', 's_2']
print(s[0]) #出力:s_1
print(s[1]) #出力:s_2
split()は、半角スペースだけでなく、カンマsplit(',')、スラッシュ('/')の分割も可能です。
1行に複数の整数の入力を取得し、整数として出力する
例)入力:i_1 i_2
i = list(map(int, input().split())) #i_1 i_2を取得し、iに値を入れる
print(i[0]) #出力:i_1
print(i[1]) #出力:i_2
複数行に複数の入力値を取得し、出力する
例)入力:
s_1
s_2
s_3
s = [input() for i in range(3)]
print(s) #出力['s_1', 's_2', 's_3']
input関数の文字列に含まれる改行は無視される点に注意が必要です。
複数行に複数の整数を取得し、整数として出力する場合には、
i = [int(input()) for i in range(3)]
print(i) #[i_1, i_2, i_3]
で入出力することができます。
最初に入力回数、次に入力値を取得し、出力する
例)入力:
N
s_1
s_2
s_3
...
s_N
N = int(input()) #1行目のNを取得する
s = [input() for i in range(N)] #複数行の数値の入力を取得
print(s) #出力:['s_1', 's_2', 's_3', 's_N']
以上、Python3における標準入力やり方まとめでした。