[Python] input()で複数の値を入力する方法

Pythonでinput()を使用して複数の値を入力する方法は、ユーザーからの入力を一度に受け取り、それを分割して個々の値として処理することです。

通常、ユーザーはスペースやカンマで区切って入力します。

例えば、input()で受け取った文字列をsplit()メソッドで分割することで、リスト形式で複数の値を取得できます。

これにより、input().split()を使って、ユーザーが入力した複数の値を簡単にリストとして扱うことができます。

必要に応じて、map()関数を使って各要素を整数や浮動小数点数に変換することも可能です。

この記事でわかること
  • input()関数の基本的な使い方とデータ型の変換方法
  • split()メソッドを使った複数の値の入力方法
  • map()関数を用いた入力データの型変換
  • リスト内包表記を使ったリストの効率的な処理方法
  • 複数のデータを辞書に格納する方法とその応用例

目次から探す

input()の基本的な使い方

Pythonのinput()関数は、ユーザーからの入力を受け取るための基本的な方法です。

このセクションでは、input()関数の基本的な使い方について説明します。

input()関数とは

input()関数は、ユーザーからの入力を受け取り、その入力を文字列として返します。

Pythonの標準ライブラリに含まれており、特別なインポートは必要ありません。

ユーザーにプロンプトを表示することも可能です。

# ユーザーに名前を入力してもらう
name = input("あなたの名前を入力してください: ")
print("こんにちは、" + name + "さん!")
あなたの名前を入力してください: 太郎
こんにちは、太郎さん!

この例では、ユーザーに名前を入力してもらい、その名前を使って挨拶を表示しています。

単一の値を入力する方法

input()関数を使って、単一の値を入力するのは非常に簡単です。

ユーザーに対してプロンプトを表示し、入力された値を変数に格納します。

# 年齢を入力してもらう
age = input("あなたの年齢を入力してください: ")
print("あなたは" + age + "歳です。")
あなたの年齢を入力してください: 25
あなたは25歳です。

この例では、ユーザーに年齢を入力してもらい、その年齢を表示しています。

入力されたデータの型

input()関数は、ユーザーからの入力を常に文字列として返します。

数値を扱いたい場合は、適切な型に変換する必要があります。

例えば、整数に変換するにはint()関数を使用します。

# 数値を入力してもらい、整数に変換
number = int(input("整数を入力してください: "))
print("入力された整数は", number, "です。")
整数を入力してください: 10
入力された整数は 10 です。

この例では、ユーザーに整数を入力してもらい、その値を整数型に変換して表示しています。

入力されたデータを適切に扱うためには、型変換が重要です。

複数の値を入力する方法

Pythonでは、input()関数を使って複数の値を一度に入力することができます。

このセクションでは、複数の値を効率的に入力するための方法を紹介します。

split()メソッドを使った入力

split()メソッドを使用すると、ユーザーが入力した文字列を特定の区切り文字で分割し、リストとして取得することができます。

デフォルトでは空白文字で分割されます。

# 複数の値を空白区切りで入力
values = input("空白で区切って3つの値を入力してください: ").split()
print("入力された値は:", values)
空白で区切って3つの値を入力してください: 10 20 30
入力された値は: ['10', '20', '30']

この例では、ユーザーが空白で区切った3つの値を入力し、それをリストとして取得しています。

カンマ区切りでの入力

カンマ区切りで入力を受け取る場合は、split(',')を使用します。

これにより、カンマを区切り文字として文字列を分割できます。

# 複数の値をカンマ区切りで入力
values = input("カンマで区切って3つの値を入力してください: ").split(',')
print("入力された値は:", values)
カンマで区切って3つの値を入力してください: 10,20,30
入力された値は: ['10', '20', '30']

この例では、ユーザーがカンマで区切った3つの値を入力し、それをリストとして取得しています。

map()関数を使った型変換

map()関数を使うと、リスト内の各要素に対して一括で型変換を行うことができます。

例えば、入力された文字列を整数に変換する場合に便利です。

# 複数の整数を空白区切りで入力し、整数に変換
numbers = list(map(int, input("空白で区切って3つの整数を入力してください: ").split()))
print("入力された整数は:", numbers)
空白で区切って3つの整数を入力してください: 10 20 30
入力された整数は: [10, 20, 30]

この例では、ユーザーが空白で区切った3つの整数を入力し、それを整数型に変換してリストとして取得しています。

map()関数を使うことで、入力されたデータを効率的に型変換できます。

複数の値をリストとして扱う

Pythonでは、複数の値をリストとして扱うことで、データの操作や管理が容易になります。

このセクションでは、入力された複数の値をリストとして扱う方法について説明します。

リストへの変換方法

ユーザーから入力された複数の値をリストに変換するには、split()メソッドを使用します。

これにより、入力された文字列を指定した区切り文字で分割し、リストとして取得できます。

# ユーザーからの入力をリストに変換
values = input("空白で区切って値を入力してください: ").split()
print("リストとしての値:", values)
空白で区切って値を入力してください: apple banana cherry
リストとしての値: ['apple', 'banana', 'cherry']

この例では、ユーザーが空白で区切った値を入力し、それをリストとして取得しています。

リスト内包表記を使った処理

リスト内包表記を使うと、リストの要素を効率的に処理できます。

例えば、入力された数値を2倍にする場合、リスト内包表記を使うと簡潔に記述できます。

# 入力された数値を2倍にする
numbers = list(map(int, input("空白で区切って数値を入力してください: ").split()))
doubled_numbers = [x * 2 for x in numbers]
print("2倍にした数値:", doubled_numbers)
空白で区切って数値を入力してください: 1 2 3
2倍にした数値: [2, 4, 6]

この例では、ユーザーが入力した数値を2倍にし、新しいリストとして取得しています。

リスト内包表記を使うことで、コードを簡潔に保ちながら、リストの要素を効率的に処理できます。

リストの要素にアクセスする方法

リストの要素にアクセスするには、インデックスを使用します。

インデックスは0から始まり、リストの要素に順番にアクセスできます。

# リストの要素にアクセス
fruits = ['apple', 'banana', 'cherry']
print("最初の果物:", fruits[0])
print("2番目の果物:", fruits[1])
print("最後の果物:", fruits[-1])
最初の果物: apple
2番目の果物: banana
最後の果物: cherry

この例では、リストの各要素にインデックスを使ってアクセスしています。

インデックスを使うことで、特定の要素を簡単に取得できます。

リストの最後の要素には、負のインデックスを使ってアクセスすることも可能です。

応用例

ここでは、input()関数を使った複数の値の入力を応用した例を紹介します。

これらの例を通じて、実際のプログラムでの活用方法を学びましょう。

複数の数値を入力して合計を計算する

ユーザーから複数の数値を入力してもらい、その合計を計算するプログラムを作成します。

map()関数を使って入力された文字列を整数に変換し、sum()関数で合計を求めます。

# 複数の数値を入力し、合計を計算
numbers = list(map(int, input("空白で区切って数値を入力してください: ").split()))
total = sum(numbers)
print("入力された数値の合計は:", total)
空白で区切って数値を入力してください: 5 10 15
入力された数値の合計は: 30

この例では、ユーザーが入力した数値を合計し、その結果を表示しています。

複数の文字列を入力してソートする

ユーザーから複数の文字列を入力してもらい、それをアルファベット順にソートするプログラムを作成します。

sorted()関数を使ってリストをソートします。

# 複数の文字列を入力し、ソート
words = input("空白で区切って文字列を入力してください: ").split()
sorted_words = sorted(words)
print("ソートされた文字列:", sorted_words)
空白で区切って文字列を入力してください: banana apple cherry
ソートされた文字列: ['apple', 'banana', 'cherry']

この例では、ユーザーが入力した文字列をアルファベット順にソートし、その結果を表示しています。

複数のデータを辞書に格納する

ユーザーからキーと値のペアを入力してもらい、それを辞書に格納するプログラムを作成します。

入力されたデータをsplit()で分割し、辞書に追加します。

# キーと値のペアを入力し、辞書に格納
data = input("空白で区切ってキーと値のペアを入力してください (例: key1:value1 key2:value2): ").split()
dictionary = {k: v for k, v in (item.split(':') for item in data)}
print("作成された辞書:", dictionary)
空白で区切ってキーと値のペアを入力してください (例: key1:value1 key2:value2): name:太郎 age:25
作成された辞書: {'name': '太郎', 'age': '25'}

この例では、ユーザーが入力したキーと値のペアを辞書に格納し、その結果を表示しています。

辞書を使うことで、データをキーで管理しやすくなります。

よくある質問

input()で入力されたデータを整数に変換するには?

input()関数で入力されたデータは文字列として扱われます。

これを整数に変換するには、int()関数を使用します。

例えば、ユーザーから整数を入力してもらい、その値を整数型に変換するには次のようにします。

例:number = int(input("整数を入力してください: "))

このコードでは、ユーザーが入力した文字列をint()関数で整数に変換し、変数numberに格納しています。

複数行の入力を受け取るにはどうすればいい?

複数行の入力を受け取るには、input()関数をループ内で使用するか、sys.stdin.read()を使用します。

ループを使う場合、特定の終了条件を設定して入力を終了させることが一般的です。

import sys
data = sys.stdin.read()

このコードでは、sys.stdin.read()を使って標準入力から複数行のデータを一度に読み取ります。

ユーザーが入力を終了するには、EOF(End Of File)を送信します(通常はCtrl+DまたはCtrl+Z)。

入力の際にエラーハンドリングを行う方法は?

入力の際にエラーハンドリングを行うには、tryexceptを使って例外処理を行います。

これにより、ユーザーが不正なデータを入力した場合でもプログラムがクラッシュしないようにできます。

try:
    number = int(input("整数を入力してください: "))
except ValueError:
    print("有効な整数を入力してください。")

このコードでは、ユーザーが整数以外の値を入力した場合にValueErrorが発生し、エラーメッセージを表示します。

これにより、ユーザーに再入力を促すことができます。

まとめ

この記事では、Pythonのinput()関数を用いて複数の値を入力する方法について詳しく解説しました。

split()メソッドmap()関数を活用することで、入力されたデータを効率的に処理し、リストや辞書として扱う方法を学びました。

これらのテクニックを活用して、より複雑なデータ入力を必要とするプログラムを作成してみてください。

  • URLをコピーしました!
目次から探す