Edited at

Python3 標準入力から複数の値を受け取りたい時

More than 1 year has passed since last update.


背景

AtCoderなどのプログラムを提出する系のサービスでは標準入力から複数の値を受け取る必要が出てくる場合があります.

???となったため以下にPython3における標準入力から複数の値を受け取る方法をまとめてみました.


参考にしたサイト

ピンポイントに情報が載ってたサイトがありましたわ.

No Caffeine,No Life 「Python3:標準入力の受け取り方」


1行に複数の数値を入力する場合

>>> a,b=map(int,input().split())#標準入力を行う

33 66
>>> print(a)
33
>>> print(b)
66

標準入力の区切りは空白になっています.そのため,上の例のようにa=33,b==66にしたい時は「33(空白)66」と入力します


複数行に数値を入力する場合


内包表記の場合

>>> N=int(input())#入力回数を決める

3
>>> a,b,c=[int(input()) for i in range(N)]
4
55
68
>>> print(a,b,c)
4 55 68

最初の行で入力回数を与え,その回数分値を入力します.


普通に書く場合

>>> N=int(input())#入力回数を決める

3
>>> list=[]
>>> for i in range(N):
... list.append(int(input()))
...
5
22
85
>>> print(list)
[5, 22, 85]

内包表記ではなく普通にfor文を記載する場合は次のように記載します.

(内包表記もリスト使っていいと思います・・・)


感想

ソースコードを提出する系のサービスでは標準入力の書き方を覚えていないと詰むのでぜひ覚えましょう!