Python input関数とは?ユーザーから入力を受け取る方法
Python input関数の基本的な使い方を初心者向けに解説。ユーザーからの入力を受け取る方法から、データ型変換、エラー処理まで実践的な使い方を紹介します。
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関数をマスターすれば、もっと実用的で面白いプログラムが作れるようになります。 まずは簡単な例から始めて、徐々に複雑な機能に挑戦してみてくださいね!