Pythonのinput関数とは、キーボードから入力された値を文字列として受け取る関数です。
画面に文字を出すだけならprintで十分ですが、ユーザーが入力した名前、年齢、点数などを使って処理を変えたい場合はinput()を使います。

最初は『inputは文字列で受け取る』だけ覚えてください。数字を入力しても、受け取った直後は文字列です。
この記事では、input()の基本、入力メッセージの出し方、数値へ変換する方法、入力チェックでつまずきやすい点を順番に解説します。
次の図では、キーボードから入った文字がinput()を通り、まず文字列として変数へ入る流れを見てください。

次の図では、受け取った文字列をそのまま使う道と、int()で数値へ変換して計算に使う道を分けて見てください。

まず結論:input()は入力を文字列として受け取る
Python公式ドキュメントでは、input()は必要に応じてプロンプトを表示し、標準入力から1行を読み込む組み込み関数として説明されています。初心者向けには、まず『入力された1行を受け取り、文字列として返す関数』と理解すれば十分です。
input関数の基本形
一番シンプルな使い方は、入力された値を変数に入れる形です。
name = input()
print(name)
このコードを実行すると、ユーザーが入力した文字がnameに入り、その後printで表示されます。printの基本が曖昧な場合は、先にPythonのprint関数を確認すると読みやすくなります。
入力メッセージを表示する
input()の丸括弧の中に文字列を書くと、入力前にメッセージを表示できます。これをプロンプトとして使います。
name = input("名前を入力してください: ")
print("こんにちは、" + name + "さん")
プロンプトを入れると、何を入力すればよいかが分かりやすくなります。練習用のプログラムでも、入力待ちで止まって見える不安を減らせます。
数字を入力しても最初は文字列
inputで特に大事なのは、数字を入力しても戻り値は文字列だという点です。
age = input("年齢を入力してください: ")
print(age + 1) # TypeError になる
この例では、ageは数値ではなく文字列です。そのため、1を足そうとするとエラーになります。
数値として計算したい場合は、int()やfloat()で型変換します。型変換の基本はint() float() str()の記事でも整理しています。
age_text = input("年齢を入力してください: ")
age = int(age_text)
print(age + 1)
if文と組み合わせる
inputで受け取った値は、条件分岐にもよく使います。
answer = input("続けますか? yes/no: ")
if answer == "yes":
print("続けます")
else:
print("終了します")
このように、入力値によって処理を変えると小さな対話式プログラムになります。条件分岐の読み方はPythonのif文と合わせて押さえると理解しやすいです。
入力ミスに備える
int(input())は便利ですが、数字以外が入力されるとValueErrorになります。ユーザー入力は間違える前提で考えるのが基本です。
try:
score = int(input("点数を入力してください: "))
print(score >= 60)
except ValueError:
print("数字を入力してください")
ここでは、数値に変換できない入力をtry-exceptで受け止めています。例外処理が初めてなら、Pythonのtry-exceptを先に読んでおくと安心です。
初心者がつまずきやすいポイント
| つまずき | まずこう理解する |
|---|---|
| 数字を入力したら数値になると思う | input()の戻り値は常に文字列として扱う |
| 入力待ちで止まっているのをエラーだと思う | ユーザーの入力を待っている状態 |
int(input())だけで書く | 最初は変数を分けると読みやすい |
| 入力ミスを考えない | 実用ではtry-exceptや条件分岐で確認する |
小さな対話式プログラムで見る
inputは、単体で覚えるよりも、print、型変換、if文と組み合わせて小さなプログラムにすると理解しやすくなります。
name = input("名前: ")
age_text = input("年齢: ")
age = int(age_text)
if age >= 20:
print(f"{name}さんは成人です")
else:
print(f"{name}さんは未成年です")
この例では、名前はそのまま文字列として使い、年齢だけをintへ変換しています。すべての入力を数値に変換するのではなく、『何に使う値か』を見て変換するか決めるのがポイントです。
inputを読むときの順番
コードを読むときは、まずinputがどの変数へ入っているかを見ます。次に、その変数が文字列のまま使われているのか、intやfloatで変換されているのかを確認します。最後に、変換後の値がif文や計算に使われているかを追います。
| 確認すること | 見る場所 | 例 |
|---|---|---|
| 何を入力するか | プロンプト | "年齢を入力してください" |
| どの変数に入るか | 代入の左側 | age_text = input(...) |
| 型変換するか | 次の行 | age = int(age_text) |
| どこで使うか | if文や計算 | age >= 20 |
練習するときのおすすめ手順
最初から長いプログラムを書く必要はありません。まずは1つの入力を受け取り、そのまま表示するところから始めます。次に、数値へ変換して計算し、最後にif文で処理を分けると段階的に理解できます。
入力を扱えるようになると、練習問題の幅が一気に広がります。画面に固定値を出すだけでなく、ユーザーが入れた値によって結果が変わるプログラムを作れるからです。
よくある疑問
inputで入力した文字の最後に改行は入る?
input()は、ユーザーがEnterキーを押すまでの1行を読み込みます。戻り値には、通常そのEnterによる改行文字は含まれません。そのため、入力された文字列をそのまま比較できます。
空のままEnterされたらどうなる?
何も入力せずにEnterを押すと、空文字列""が返ります。必須入力にしたい場合は、空文字列かどうかをif文で確認します。
name = input("名前: ")
if name == "":
print("名前は必須です")
else:
print(f"こんにちは、{name}さん")
inputはWebフォームでも使う?
input()は、主にターミナルで動く小さなプログラムや学習用コードで使います。Webアプリでは、HTMLフォームやフレームワーク側の仕組みで入力を受け取るため、同じ名前の入力欄とは役割が違います。
そのため、DjangoなどのWebフレームワークへ進む前の段階では、inputで『外から値が入ってくる感覚』を作っておくと役立ちます。後でフォーム処理を学ぶときも、入力値を受け取り、検証し、型を整えて使うという流れは共通しています。学習初期の小さな練習として、かなり効果が高い題材です。
公式情報と関連して読みたい記事
まとめ
input()は、ユーザーから入力を受け取るための組み込み関数です。
inputを理解すると、printだけのプログラムから、ユーザーの入力に反応するプログラムへ進めます。
