はじめに
paizaラーニングを活用して、pythonを学んでいます。
スキルチェックにおいて、標準入力で時間がかかることがあるので、備忘録を兼ねて入力要領を整理しました。
標準入力とは
Pythonの組み込み関数input()
を使用し、キーボードから入力を受け付けるものです。
以下の表のとおり整理して記述します。
入力値 : 入力先 | 入力値が1行 | 入力値が複数行 |
---|---|---|
数値:変数1つ | ① | ② |
変数複数 | ③ | ④ |
文字:変数1つ | ⑤ | ⑥ |
変数複数 | ⑦ | ⑧ |
数値入力
① 変数が1つの場合(入力値が1行)
(例)入力値が(12)や(1.0)の場合
n = int(input())
n = float(input()) #以下、floatは省略
(例)入力値が(12 13 14)の場合
n = list(map(int,input().split()))
#又は
n = [int(x) for x in input().split()]
# 結果
print(n)
# [12, 13, 14]
(例)入力値(12,13,14)や入力値(12/13/14)の場合
n = list(map(int,input().split(",")))
n = [int(x) for x in input().split("/")]
# 結果
print(n)
# [12, 13, 14]
小数の入力値に対しintで受け取ると「ValueError」になるので注意
split()の入力値が、”/” で区切られている場合は、split( )内を ”/” する。
② 変数が1つの場合(入力値が複数行)
(例)入力値(12
13
14)の場合
#入力値が3行の場合
n = [0]*3
for i in range(3):
n = int(input())
#又は
n = [int(input()) for _ in range(3)]
(例)入力値(12 22
13 23
14 24)の場合
n = [0]*3
for i in range(3):
n[i] = list(map(int,input().split()))
#又は
n =[list(map(int,input().split())) for _ in range(3)]
#又は
n =[[int(x) for x in input().split()] for _ in range(3)]
#結果
print(n)
#[[12, 22], [13, 23], [14, 24]]
③ 変数が複数の場合(入力値が1行)
(例)入力値が(12 13 14)の場合
a, b, c = map(int,input().split())
a, b, c = [int(x) for x in input().split()]
④ 変数が複数の場合(入力値が複数行)
(例)入力値(12
13
14)の場合
a, b, c = (int(input()) for x in range(3))
(例)入力値(12 22 32
13 23 33
14 24 34)の場合
a, b, c = [0]*3, [0]*3, [0]*3
for i in range(3):
a[i], b[i], c[i] = list(map(int,input().split()))
# 結果
print(a, b, c)
# [12, 13, 14] [22, 23, 24] [32, 33, 34]
a, b, c = [list(map(int,input().split())) for _ in range(3)]
a, b, c = [[int(x) for x in input().split()] for _ in range(3)]
# 結果
print(a, b, c)
# [12, 22, 32] [13, 23, 33] [14, 24, 34]
内包表記は、入力先の変数が1つでも複数でもほぼ同様の記述で済むため、覚えておくと便利です
文字列入力
⑤ 変数が1つの場合(入力値が1行)
(例)入力値 (Qiita) の場合
s = input()
# 結果
print(s)
# Qiita
s = list(input())
# 結果
print(s)
# ['Q', 'i', 'i', 't', 'a']
(例)入力値 (Qiita Qiita Qiita)の場合
s = input().split()
# 結果
print(s)
# ['Qiita', 'Qiita', 'Qiita']
s = [list(x) for x in input().split()]
# 結果
print(s)
[['Q', 'i', 'i', 't', 'a'], ['Q', 'i', 'i', 't', 'a'], ['Q', 'i', 'i', 't', 'a']]
⑥ 変数が1つの場合(入力値が複数行)
(例)入力値(Qiita
Qiita
Qiita)の場合
s = [""]*3
for i in range(3):
s[i] = input()
# 又は
s = [input() for _ in range(3)]
# 結果
print(s)
# ['Qiita', 'Qiita', 'Qiita']
名簿のような入力の場合(setを使用)
(例)入力値(1 Mario
2 Luigi
3 Princess_Peach)の場合
# keyを文字列で入力
roster = {(x, y) for x, y in [input().split() for _ in range(N)]}
print(roster)
# {('1','Mario'),('2','Luigi'),('3','Princess_Peach')}
# keyを数字で入力
roster = {(int(x), y) for x, y in [input().split() for _ in range(N)]}
print(roster)
# {(1,'Mario'),(2,'sLuigi'),(3,'Princess_Peach')}
辞書のキーとリストの箱を作る場合
(例)(Mario
Luigi
Princess_Peach)の場合
roster = {input(): [] for _ in range(3)}
print(roster)
# {'Mario': [], 'Luigi': [], Princess_Peach': []}
⑦ 変数が複数の場合(入力値が1行)
(例)入力値 "Qiita Qiita Qiita"の場合
s, t, u = map(str,input().split())
# 結果
print(s, t, u)
# Qiita Qiita Qiita
⑧ 変数が複数の場合(入力値が複数行)
(例)入力値(Qiita
Qiita
Qiita)の場合
s = input()
t = input()
u = input()
# 又は
s, t, u =(input() for _ in range(3))
#結果
print(s, t, u)
# Qiita Qiita Qiita
組み込み関数 - input() — Python 3.12.4 ドキュメント
結びに
誤記等がありましたらご指摘いただけると幸いです。