Pythoninput関数は、プログラムがユーザーからの入力を受け取るために使われる基本的な組み込み関数です。コンソールで実行されるスクリプトにおいて、ユーザーの指示やデータを受け取るためには不可欠な機能です。このブログでは、input関数の基本的な使い方から、実際の応用例、注意点までを詳しく解説します。

input関数とは?

input関数は、Pythonでユーザーからの入力を標準入力として受け取り、その入力を文字列として返します。ユーザーからの入力を待機し、Enterキーが押されるまでプログラムは停止します。

基本的な構文

input([prompt])
  • prompt(プロンプトメッセージ)は省略可能で、ユーザーに対して何らかのメッセージを表示させたい場合に使います。
  • 入力されたデータは常に文字列として返されます。

基本的な使い方

input関数の基本的な使い方を見てみましょう。

例1: ユーザーからの入力を受け取る

name = input("あなたの名前は何ですか?: ")
print("こんにちは、" + name + "さん!")

このコードは、ユーザーに名前を尋ね、その入力をnameという変数に格納し、その後に挨拶を表示します。input("あなたの名前は何ですか?")で、プロンプトメッセージが表示され、ユーザーからの入力を待機します。

例2: 数値を入力させる

input関数は入力を文字列として返すため、数値を扱いたい場合はint()float()で型変換を行う必要があります。

age = int(input("あなたの年齢を入力してください: "))
print(f"あなたは来年{age + 1}歳になります。")

この例では、ユーザーの年齢を入力してもらい、それをint()で整数に変換しています。数値として処理することで、年齢に対して計算を行っています。

例3: float型に変換する

実数を入力させる場合はfloat()を使用します。

height = float(input("身長を入力してください(cm): "))
print(f"あなたの身長は {height} cm です。")

float()を使って入力値を浮動小数点数として扱うことができます。

input関数の応用例

input関数は、単純な文字列や数値の入力だけでなく、さまざまな応用が可能です。

例4: 複数の入力を受け取る

複数のデータを一度に入力して処理することもできます。例えば、カンマ区切りで複数のデータを入力させ、それを分割してリストに変換する例を見てみましょう。

numbers = input("カンマで区切って数値を入力してください: ")
number_list = [int(num) for num in numbers.split(",")]
print(f"入力された数値のリスト: {number_list}")

このコードでは、ユーザーにカンマ区切りで数値を入力してもらい、それをsplit()で分割してリストに変換し、さらにリストの各要素を整数型に変換しています。

例5: ユーザーの選択肢を受け取る

ユーザーに選択肢を提示し、その選択に応じて処理を分岐させる場合も、input関数を使って実現できます。

choice = input("コーヒーと紅茶、どちらが好きですか? (coffee/tea): ")
if choice == "coffee":
    print("コーヒーがお好きですね!")
elif choice == "tea":
    print("紅茶がお好きですね!")
else:
    print("お好きな飲み物を教えてください。")

ここでは、ユーザーの入力に基づいて異なるメッセージを表示しています。

input関数の注意点

返されるデータ型は文字列

input関数は常に文字列を返します。数値や他のデータ型として処理したい場合は、必ず型変換が必要です。

# 間違った例
age = input("年齢を入力してください: ")
print(age + 1)  # TypeError: can only concatenate str (not "int") to str
# 正しい例
age = int(input("年齢を入力してください: "))
print(age + 1)  # 正常に動作する

このように、型変換を忘れるとエラーが発生することがあるため、特に数値の入力では注意が必要です。

入力エラーハンドリング

ユーザーが数値入力を求められている場合でも、誤って文字列を入力することがあります。そういった場合にはtry-exceptを使ってエラーハンドリングを行いましょう。

try:
    age = int(input("年齢を入力してください: "))
    print(f"あなたは {age} 歳です。")
except ValueError:
    print("数字を入力してください!")

このコードでは、ユーザーが正しく数値を入力しなかった場合に、エラーメッセージを表示します。

複雑な入力処理

複数の条件を持つ複雑な入力処理を行う場合は、ユーザーが正しい形式で入力するまで繰り返し処理することもあります。例えば、整数入力を要求するまでループする方法です。

while True:
    try:
        age = int(input("年齢を入力してください: "))
        break  # 正しく入力されたらループを抜ける
    except ValueError:
        print("無効な入力です。もう一度試してください。")
print(f"あなたは {age} 歳です。")

この方法で、ユーザーが正しい値を入力するまでプログラムを繰り返すことができます。

まとめ

Pythonのinput関数は、ユーザーとのインタラクションを実現するために非常に重要な役割を果たします。input関数を使うことで、ユーザーの指示を受け取り、動的なプログラムを作成することが可能です。基本的な使い方から、数値入力や複雑な入力処理の方法まで、状況に応じて適切に利用しましょう。

  • input関数は常に文字列として入力を返す。
  • 数値を入力する場合は型変換が必要。
  • 入力のエラーハンドリングを適切に行うことで、ユーザーに優しいプログラムが作成できる。