標準入力からの様々な受け取りパターンまとめ。
自分用チートシートのため、表記や説明の荒い箇所があると思われる。
学習の進度に合わせて、内容は随時追加する。
1. 1つのデータ
1-a. 文字列
string = input()
入力例
abcde
受け取り方法
string = input()
# abcde
1-b. 数値
整数 num = int(input())
小数 num = float(input())
int, floatを指定しない場合は、数値であっても自動で文字列での受け取りとなる。
入力例
123
受け取り方法
# 整数で受け取る
num = int(input())
# 123
# 小数で受け取る
num = float(input())
# 123.0
2. 1行の複数データ(変数で受け取る)
データの個数があらかじめわかっていて、数が少ない場合に向いている。
2-a. 文字列
a, b, c = input().split()
splitの引数には、データ間の区切り文字を指定する。省略した場合は、半角スペースが区切りとなる。
入力例
a b c
受け取り方法
a, b, c = input().split()
# a
# b
# c
2-b. 文字列(区切り文字が半角スペース以外)
入力例
a, b, c
受け取り方法
a, b, c = input().split(",")
# a
# b
# c
2-c. 数値
map関数を用いれば、受け取りと数値への変換が一括で行える。
a, b, c = map(int, input().split())
入力例
1 2 3
受け取り方法
a, b, c = map(int, input().split())
# a = 1
# b = 2
# c = 3
3. 1行の複数データ(リストで受け取る)
データの個数が不明、または多数である場合に向いている。
3-a. 文字列
li = input().split()
入力例
a b c
受け取り方法
li = input().split()
# ['a', 'b', 'c']
各データの区切りが半角スペース以外の場合は、splitの引数で指定する。(変数で受け取る場合と同様)
# a, b, c
li = input().split(",")
3-b. 数値
li = list(map(int, input().split()))
map関数を使うのは、「2-c. 数値」の頁と同様。
ただしmapオブジェクトからリストへの変換が必要なため、list()
を追加する。
入力例
1 2 3
受け取り方法
li = list(map(int, input().split()))
# [1, 2, 3]
4. 複数行のデータを受け取る
リスト内包表記で受け取る。
li = [input() for _ in range(入力行数)]
4-a. 文字列
入力例
abc
def
ghi
受け取り方法
li = [input() for _ in range(3)]
# ['abc', 'def', 'ghi']
4-b. 数値
リスト内包表記で、型変換も同時に行う。
li = [int(input()) for _ in range(入力行数)]
入力例
123
456
789
受け取り方法
li = [int(input()) for _ in range(3)]
# [123, 456, 789]