【Python入門】キーボードから複数の文字列・数値を入力する方法

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学習するのは大変だなと思う方は、書籍やスクールを活用するのも手です。

プログラミング言語の人気オンラインコース
よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

大学で機械工学を学んだ後、製造業で働く40代の会社員です。
IT系、電気系を学んでこなかった機械系人間が、ゲーム制作、電子工作に奮闘してます。
極力低コストでものづくりを楽しむのがモットー。

目次