Pythonにおいてユーザー入力を受け付ける方法は非常に基本的かつ重要なスキルです。
ここでは、その基本から応用まで、実践的かつ丁寧に解説します。
目次
基本:input()
関数によるユーザー入力の取得
Pythonでユーザーからの入力を受け取る最も基本的な方法は、組み込み関数 input()
を使うことです。
name = input("あなたの名前を入力してください:")
print("こんにちは、" + name + "さん!")
解説
input()
は、ユーザーのキーボード入力を文字列として取得します。- 引数にはプロンプト(入力を促す文)を指定できます。
- 入力は 常に文字列(str型)として返される ため、数値などに使う場合は型変換が必要です。
数値入力を受け付ける:int()
や float()
との組み合わせ
ユーザーに数値を入力してもらいたい場合、文字列を明示的に数値型に変換する必要があります。
age = int(input("年齢を入力してください:"))
print("あなたは来年、" + str(age + 1) + "歳になります。")
注意点
- 入力が数字でない場合、
ValueError
が発生します。 - そのため、例外処理(try-except)を使うとより安全です。
try:
height = float(input("身長をcmで入力してください:"))
print(f"あなたの身長は {height} cm ですね。")
except ValueError:
print("数値を入力してください。")
応用:複数の値を一度に受け取る
例えば、カンマ区切りで2つの数字を入力してもらうとき
x, y = input("2つの数字をカンマで区切って入力してください:").split(",")
x = int(x)
y = int(y)
print(f"x + y = {x + y}")
.split()
メソッドの活用
- 入力された文字列を 特定の文字(この例ではカンマ)で分割します。
- その結果を 複数の変数に同時に代入することができます。
無限ループで有効な入力が得られるまで繰り返す
while True:
num_str = input("整数を入力してください:")
if num_str.isdigit():
num = int(num_str)
break
else:
print("無効な入力です。整数を入力してください。")
print(f"入力された整数は {num} です。")
入力値に条件をつける
たとえば、「1〜10の範囲内の数字のみ受け付ける」ような処理もよく使われます。
while True:
try:
value = int(input("1〜10の数字を入力してください:"))
if 1 <= value <= 10:
print(f"OK: {value}")
break
else:
print("1〜10の範囲で入力してください。")
except ValueError:
print("数字を入力してください。")
よくある失敗と対策
シチュエーション | 誤り例 | 対策方法 |
---|---|---|
数字が必要なときに文字が入力された | int(input()) に “abc” を入れる | try-except で安全な入力処理にする |
空文字や不要なスペースがある | ” 123 ” のような入力 | .strip() を使って前後の空白を削除 |
分割数が合わない | a, b = input().split(",") に “1” を入れる | split() の結果を先に確認してから代入 |
まとめ

方法 | 説明 |
---|---|
input() | 標準的な入力受付。返り値は文字列。 |
int(input()) / float(input()) | 数値入力時に使用。エラー処理が必要。 |
.split() | 複数入力を分割して扱える。 |
while + try-except | 安全な入力処理には必須の構造。 |
実務での活用例(マーケティングにも応用可能)
マーケティングにおいて簡単なヒアリングツールやデータ収集スクリプトをPythonで作ることも可能です。
print("簡易アンケート")
name = input("お名前:")
age = input("年齢:")
email = input("メールアドレス:")
with open("data.csv", "a") as f:
f.write(f"{name},{age},{email}\n")
print("ご協力ありがとうございました!")
以上、Pythonのプログラムにユーザー入力を受け付ける方法についてでした。
最後までお読みいただき、ありがとうございました。