■はじめに
PaizaやAtCoder等の競技プログラミングで標準入力のやり方がわからず困っていませんか?
ここではPython3の標準入力のやり方を解説しています。
※Python3の書き方です。
■目次
- 標準入力を受け取る『input( )』
- 1つの入力を受け取る
- 複数行の文字列を受け取る
- 複数行の数値を受け取る
- 空白区切りの文字列を受け取る
- 空白区切りの数値を受け取る
- 番外編① 空白区切りで受け取った値をリストにする
- 番外編② 指定された値が入ってきたら標準入力を中止する
- 最後に
■標準入力を受け取る『input( )』
Python3において、入力された値を受け取るには『input( )』を使用します。
input( )で受け取った値は文字列扱いになります!ご注意を!
■1つの入力を受け取る
さっそく標準入力で受け取っていきましょう。
入力例①:一つの文字列
qiita.py
Hello
コード
qiita.py
str = input() # input()で入力を受け取り、それを変数strに代入
print(str) # => Hello
入力例②:一つの数値
※input( )で受け取った値は文字列扱いになります
qiita.py
100
コード
qiita.py
num = input() # 入力を受け取りnumに代入(文字列扱い)。
num = int(num) # int()で型変換し、文字列から数値にした物をnumに再代入。
print(num) # => 100
■複数行の文字列を受け取る
入力例③:文字列(2行)
qiita.py
Hello
world
コード
qiita.py
str1 = input() # 一つ目の入力をstr1に代入。
str2 = input() # 二つ目の入力をstr2に代入。
print(str1, str2) # => Hello world
入力例④:文字列(5行)
qiita.py
Monday
Tuesday
Wednesday
Thursday
Friday
コード
入力例③で記述したコードでも良いが、下記のように『リスト内包表記』を使用するとコードをシンプルに記述できる。
qiita.py
mon, tue, wed, thu, fri = [input() for i in range(5)]
print(mon, tue, wed, thu, fri) # => Monday Tuesday Wednesday Thursday Friday
■複数行の数値を受け取る
入力例⑤:数値(2行)
qiita.py
1
2
コード
input( )をint( )で括れば、入力を数値として変数に代入できます。
qiita.py
num1 = int(input()) # num1に数値として『1』が入る
num2 = int(input()) # num2に数値として『2』が入る
print(num1, num2) # => 1 2
入力例⑥:数値(5行)
qiita.py
100
200
300
400
500
コード
qiita.py
num1, num2, num3, num4, num5 = [int(input()) for i in range(5)]
print(num1, num2, num3, num4, num5) # => 100 200 300 400 500
■空白区切りの文字列を受け取る
入力例⑦:空白区切りの文字列(3個)
qiita.py
おはよう こんにちは こんばんは
コード
split( )を使うと空白区切りでリストになる。
qiita.py
morning, afternoon, evening = input().split() # split()で空白区切りでリスト化し、変数に代入。
print(morning, afternoon, evening) # => おはよう こんにちは こんばんは
■空白区切りの数値を受け取る
入力例⑧:空白区切りの数値(5個)
qiita.py
1 2 3 4 5
コード
空白区切りで、数値として標準入力の値を受け取りたい場合、map( )を使用する。
qiita.py
one, two, three, four, five = map(int, input().split()) # split()で空白区切りでリスト化、その際map()でint型にキャストし変数に代入。
print(one, two, three, four, five) # => 1 2 3 4 5
■番外編① 空白区切りで受け取った値をリストにする
入力例⑨:空白区切りの数値
qiita.py
1 3 5 7
コード
リストを作成したい場合はlist( )で括る。
qiita.py
li = list(map(int, input().split())) # list()でリスト化、それを変数liに代入。
print(li) # => [1, 3, 5, 7]
入力例⑩:空白区切りの文字列
qiita.py
ハンバーガー ポテト アイスティー
コード
入力例⑦でも解説したように、split( )を使えば空白区切りでリストになる。
qiita.py
li = input().split() # split()で空白区切りでリスト化、変数liに代入。
print(li) # => ["ハンバーガー", "ポテト", "アイスティー"]
■番外編② 指定された値が入ってきたら標準入力を中止する
入力例11:空白区切りの文字列
qiita.py
5
4
3
2
1
0
コード
0を受け取ったら、入力を終了します。
qiita.py
li = [] # => 空のリストを定義
while True: # => 無限ループ
num = int(input()) # => 受け取った値を数値に型変換し、変数numに代入
if num == 0: # => numが0の時
break # => 処理が終了
else: # => それ以外は
li.append(num) # => 変数numをliに追加
print(li) # => [5, 4, 3, 2, 1]
■最後に
ここまで読んで頂きありがとうございました。
(最後に「いいね!」ボタン押して頂けたら嬉しいですボソッ)
みなさま、良い競プロライフを!