Python input関数とは?ユーザーから入力を受け取る方法

Python input関数の基本的な使い方を初心者向けに解説。ユーザーからの入力を受け取る方法から、データ型変換、エラー処理まで実践的な使い方を紹介します。

Learning Next 運営
15 分で読めます

Python input関数とは?ユーザーから入力を受け取る方法

みなさん、プログラムでユーザーとやり取りをしてみたいと思いませんか?

「名前を入力してもらいたい」「好きな数字を聞いてみたい」「対話型のプログラムを作りたい」

こんなとき、どうしていますか?

実は、Pythonにはinput関数という便利な機能があります。 この関数を使えば、ユーザーからキーボード入力を受け取れるんです。

この記事では、input関数の基本から応用まで、わかりやすく解説していきます。 あなたも対話型のプログラムを作れるようになりますよ!

input関数って何?

input関数は、ユーザーからキーボード入力を受け取るPythonの組み込み関数です。

簡単に言うと、プログラムが「何か入力してください」と待ってくれる機能なんです。

基本的な使い方

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

# 基本の書き方
変数 = input("入力を促すメッセージ")

実際に使ってみましょう。

# 名前を入力してもらう例
name = input("お名前を入力してください: ")
print(f"こんにちは、{name}さん!")

このプログラムを実行すると、こんなふうになります。

お名前を入力してください: 田中太郎 こんにちは、田中太郎さん!

プログラムがユーザーの入力を待って、入力された内容を使って挨拶してくれました。

なぜinput関数が便利?

input関数を使うことで、プログラムがもっと面白くなります。

毎回同じ結果ではなく、ユーザーの入力によって結果が変わるんです。 これで、より実用的なプログラムが作れるようになります。

文字列の入力方法

基本的な文字列入力

input関数は、常に文字列(str)でデータを返します。

# いろいろな文字列を入力してもらう
message = input("メッセージを入力してください: ")
print(f"入力されたメッセージ: {message}")
print(f"データ型: {type(message)}")
# 空の入力も文字列として扱われる
empty_input = input("何も入力せずにEnterを押してください: ")
print(f"空の入力: '{empty_input}'")
print(f"データ型: {type(empty_input)}")

実行結果はこちらです。

メッセージを入力してください: こんにちは 入力されたメッセージ: こんにちは データ型: <class 'str'> 何も入力せずにEnterを押してください: 空の入力: '' データ型: <class 'str'>

何も入力しなくても、空の文字列として扱われます。

わかりやすいメッセージを使う

ユーザーに何を入力してほしいかを明確に伝えましょう。

# 具体的でわかりやすいメッセージ
age = input("年齢を数字で入力してください: ")
hobby = input("趣味を教えてください: ")
city = input("住んでいる都市名を入力してください: ")
print(f"年齢: {age}")
print(f"趣味: {hobby}")
print(f"住んでいる都市: {city}")

メッセージが具体的だと、ユーザーが迷いません。

数値に変換する方法

文字列から数値への変換

input関数は常に文字列を返します。 数値として使いたい場合は、型変換が必要なんです。

# 整数に変換
age_str = input("年齢を入力してください: ")
age = int(age_str)
print(f"10年後の年齢: {age + 10}")
# 小数に変換
height_str = input("身長を入力してください(cm): ")
height = float(height_str)
print(f"身長: {height} cm")
# 入力と同時に変換
weight = float(input("体重を入力してください(kg): "))
print(f"体重: {weight} kg")

実行結果はこちらです。

年齢を入力してください: 25 10年後の年齢: 35 身長を入力してください(cm): 170.5 身長: 170.5 cm 体重を入力してください(kg): 60.0 体重: 60.0 kg

int()で整数に、float()で小数に変換できます。

複数の数値を一度に入力

複数の数値をスペース区切りで入力してもらう方法です。

# スペース区切りで複数の数値を入力
numbers_str = input("数値をスペース区切りで入力してください: ")
numbers = [int(x) for x in numbers_str.split()]
print(f"入力された数値: {numbers}")
print(f"合計: {sum(numbers)}")
print(f"平均: {sum(numbers) / len(numbers)}")

実行結果はこちらです。

数値をスペース区切りで入力してください: 10 20 30 入力された数値: [10, 20, 30] 合計: 60 平均: 20.0

split()で文字列を分割して、それぞれを数値に変換しています。

エラーが起きたときの対処法

try-except文を使う

ユーザーが数値以外を入力した場合のエラー処理です。

# 安全な数値入力
def safe_input_number(prompt):
while True:
try:
value = float(input(prompt))
return value
except ValueError:
print("数値を入力してください。")
# 使ってみよう
age = safe_input_number("年齢を入力してください: ")
print(f"年齢: {age}")

この関数を使うと、正しい数値が入力されるまで繰り返し聞いてくれます。

入力値をチェックする

入力された値が想定範囲内にあるかを確認する方法です。

def get_valid_age():
while True:
try:
age = int(input("年齢を入力してください(0-120): "))
if 0 <= age <= 120:
return age
else:
print("年齢は0から120の間で入力してください。")
except ValueError:
print("数値を入力してください。")
# 使ってみよう
user_age = get_valid_age()
print(f"有効な年齢: {user_age}")

実行結果はこちらです。

年齢を入力してください(0-120): 150 年齢は0から120の間で入力してください。 年齢を入力してください(0-120): abc 数値を入力してください。 年齢を入力してください(0-120): 25 有効な年齢: 25

この方法で、妥当な範囲の値のみを受け付けます。

実践的な使い方

簡単な計算機を作る

input関数を使って、簡単な計算機を作ってみましょう。

def simple_calculator():
print("簡単な計算機です")
try:
num1 = float(input("最初の数値を入力してください: "))
operator = input("演算子を入力してください (+, -, *, /): ")
num2 = float(input("次の数値を入力してください: "))
if operator == '+':
result = num1 + num2
elif operator == '-':
result = num1 - num2
elif operator == '*':
result = num1 * num2
elif operator == '/':
if num2 != 0:
result = num1 / num2
else:
print("ゼロで割ることはできません")
return
else:
print("無効な演算子です")
return
print(f"結果: {num1} {operator} {num2} = {result}")
except ValueError:
print("数値を正しく入力してください")
# 計算機を実行
simple_calculator()

実行結果はこちらです。

簡単な計算機です 最初の数値を入力してください: 10 演算子を入力してください (+, -, *, /): + 次の数値を入力してください: 5 結果: 10.0 + 5.0 = 15.0

基本的な四則演算ができる計算機ができました。

アンケートプログラムを作る

def survey_program():
print("アンケートにご協力ください")
print("-" * 30)
# 基本情報を聞く
name = input("お名前: ")
age = int(input("年齢: "))
city = input("住んでいる都市: ")
# 評価を聞く
satisfaction = int(input("サービスの満足度(1-5): "))
# 感想を聞く
comment = input("ご意見・ご感想: ")
# 結果を表示
print("
" + "=" * 30)
print("アンケート結果")
print("=" * 30)
print(f"お名前: {name}")
print(f"年齢: {age}")
print(f"住んでいる都市: {city}")
print(f"満足度: {satisfaction}/5")
print(f"コメント: {comment}")
print("
ご協力ありがとうございました!")
# アンケートを実行
survey_program()

実行結果はこちらです。

アンケートにご協力ください ------------------------------ お名前: 田中太郎 年齢: 30 住んでいる都市: 東京 サービスの満足度(1-5): 4 ご意見・ご感想: とても使いやすかったです ============================== アンケート結果 ============================== お名前: 田中太郎 年齢: 30 住んでいる都市: 東京 満足度: 4/5 コメント: とても使いやすかったです ご協力ありがとうございました!

ユーザーから様々な情報を収集するプログラムができました。

もっと便利な使い方

選択肢から選んでもらう

メニューを表示して、選択してもらう方法です。

def get_menu_choice():
while True:
print("
メニューを選択してください:")
print("1. 新規作成")
print("2. 編集")
print("3. 削除")
print("4. 終了")
choice = input("選択(1-4): ")
if choice in ['1', '2', '3', '4']:
return int(choice)
else:
print("1から4の数字を入力してください。")
# 使ってみよう
choice = get_menu_choice()
if choice == 1:
print("新規作成を選択しました")
elif choice == 2:
print("編集を選択しました")
elif choice == 3:
print("削除を選択しました")
elif choice == 4:
print("終了します")

実行結果はこちらです。

メニューを選択してください: 1. 新規作成 2. 編集 3. 削除 4. 終了 選択(1-4): 2 編集を選択しました

メニュー形式のプログラムが作れました。

便利な関数を作る

よく使う入力処理を関数にしておくと便利です。

def get_yes_no(prompt):
"""はい/いいえの入力を受け取る関数"""
while True:
answer = input(f"{prompt} (y/n): ").lower()
if answer in ['y', 'yes', 'はい']:
return True
elif answer in ['n', 'no', 'いいえ']:
return False
else:
print("y/n で答えてください。")
def get_integer_range(prompt, min_val, max_val):
"""指定範囲の整数を受け取る関数"""
while True:
try:
value = int(input(f"{prompt} ({min_val}-{max_val}): "))
if min_val <= value <= max_val:
return value
else:
print(f"{min_val}から{max_val}の間で入力してください。")
except ValueError:
print("整数を入力してください。")
# 使ってみよう
continue_program = get_yes_no("続けますか?")
score = get_integer_range("点数を入力してください", 0, 100)
print(f"続行: {continue_program}")
print(f"点数: {score}")

実行結果はこちらです。

続けますか? (y/n): y 点数を入力してください (0-100): 85 続行: True 点数: 85

このような関数を用意すると、入力処理が簡単になります。

まとめ

Python input関数は、ユーザーとの対話的なプログラムを作るのに必要不可欠な機能です。

今回学んだポイント

基本的な使い方

  • input関数でユーザーからの入力を受け取れる
  • 入力は常に文字列として返される
  • わかりやすいメッセージを使う

数値への変換

  • int()で整数に変換
  • float()で小数に変換
  • 複数の数値も一度に処理できる

エラー処理

  • try-except文で安全な入力処理
  • 入力値の検証で妥当性チェック
  • 無限ループで正しい入力まで待つ

実践的な活用

  • 計算機プログラム
  • アンケートシステム
  • メニュー形式のプログラム
  • 便利な関数の作成

input関数をマスターすれば、もっと実用的で面白いプログラムが作れるようになります。 まずは簡単な例から始めて、徐々に複雑な機能に挑戦してみてくださいね!

関連記事