Help us understand the problem. What is going on with this article?

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

背景

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文を記載する場合は次のように記載します.
(内包表記もリスト使っていいと思います・・・)

感想

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away