Pythonでキーボードから文字列や数値を入力する方法は分かるが、複数入力する方法が分からない。
今回はそんな悩みに答えます。
この記事はこんな人におすすめ!
- キーボードからの複数入力方法を知りたい人
- Pythonを学習し始めたばかりの人
方法は簡単です。
スペース、カンマ区切りの複数入力であれば、splitを使う。
改行区切りの複数入力であれば、for文を使う。
それでは解説していきましょう!
入力の基本
まず、キーボードから1つの文字列・数値を入力する方法を説明します。
文字列の入力
キーボードからの入力を受け付けるには、input関数を使います。
s = input("文字列を入力して下さい ")
print("入力した文字列は「" + s + "」です")
[出力結果]
文字列を入力して下さい Hello World
入力した文字列は「Hello World」です
キーボードでHello Worldと打ち、Enterを押します。変数sに文字列が格納されていることが分かります。
数値の入力
整数を入力するには、int関数を使います。
x = int(input("数値を入力して下さい "))
y = x + 1
print(str(x) + "に1足すと「" + str(y) + "」です")
[出力結果]
文字列を入力して下さい 5
5に1足すと「6」です
xは整数型で格納されるので、数式演算出来ます。
文字列の複数入力方法
本題である複数個の文字列を入力する方法について、スペース区切り、カンマ区切り、改行区切りの順に解説します。
尚、文字列はリストで格納を前提とします。
スペース区切りの複数入力
スペース区切りで複数入力する場合は、split関数を使います。引数は未設定でOKです。
s = input("文字列をスペース区切りで複数入力して下さい ").split()
n = len(s)
for i in range(n):
print(s[i])
[出力結果]
文字列をスペース区切りで複数入力して下さい Hello World Python
Hello
World
Python
カンマ区切りの複数入力
カンマ区切りで複数入力する場合は、split関数の引数を「“,”」とします。
s = input("文字列をカンマ区切りで複数入力して下さい ").split(",")
n = len(s)
for i in range(n):
print(s[i])
[出力結果]
文字列をカンマ区切りで複数入力して下さい Hello,World,Python
Hello
World
Python
改行区切りの複数入力
改行区切りで複数入力する場合は、for文を使います。
n = int(input("文字列の入力数: "))
s = []
for i in range(n):
s += [input(str(i+1) + "番目の文字列入力 ")]
for i in range(n):
print(s[i])
[出力結果]
文字列の入力数: 3
1番目の文字列入力 Hello
2番目の文字列入力 World
3番目の文字列入力 Python
Hello
World
Python
数値の複数入力方法
複数個の数値を入力する方法についても、スペース区切り、カンマ区切り、改行区切りの順に解説します。
スペース区切りの複数入力
数値をスペース区切りで複数入力する場合は、少し厄介です。list関数とmap関数を使う必要があります。
x = list(map(int, input("数値をスペース区切りで複数入力して下さい ").split()))
n = len(x)
for i in range(n):
print(x[i] + 1)
map関数は第1引数に加工する関数、第2引数に加工元となる値群を指定します。今回の場合は、入力した複数の文字列を整数型に変換したいので、第1引数にintを指定しました。
map関数の戻り値はリストではないので、list関数を使います。
数値の複数入力の記述方法は、list関数とmap関数を使うことを覚えておきましょう。
[出力結果]
数値をスペース区切りで複数入力して下さい 1 2 3
2
3
4
カンマ区切りの複数入力
カンマ区切りもスペース区切りと同様です。
x = list(map(int, input("数値をカンマ区切りで複数入力して下さい ").split(",")))
n = len(x)
for i in range(n):
print(x[i] + 1)
[出力結果]
数値をカンマ区切りで複数入力して下さい 1,2,3
2
3
4
改行区切りの複数入力
数値の改行区切り入力は、文字列の場合に対してint関数を追加するのみのため、特に難しくはないです。
n = int(input("数値の入力数: "))
x = []
for i in range(n):
x += [int(input(str(i+1) + "番目の数値入力 "))]
for i in range(n):
y = x[i] + 1
print(y)
[出力結果]
数値の入力数: 3
1番目の数値入力 1
2番目の数値入力 2
3番目の数値入力 3
2
3
4
まとめ
Pythonでキーボードから文字列や数値を複数入力する方法について解説しました。
覚えておくことは
- スペース、カンマ区切りの複数入力であれば、split関数を使う
- 上記で数値の場合は、list関数とmap関数も使う
- 行区切りの複数入力であれば、for文を使う
Python学習のお役に立てたなら幸いです。
独りでPython学習するのは大変だなと思う方は、書籍やスクールを活用するのも手です。