input() をやさしく、丁寧に、たっぷり例題付きで説明します。目的は「キーボードから値を読み取ってプログラムで使う」こと。まず基本、そのあとで実戦でよく使うパターン(数値に変換、複数入力、検証、ループ)を見ていきましょう。
基本 — これだけ覚えればOK
s = input() # プロンプトなしで入力を待つ
name = input("名前を入力してください: ") # プロンプトを表示して入力を待つ
Pythoninput()は ユーザーがタイプして Enter を押すまで待つ。- 返ってくる値は 常に文字列(
str)。たとえば123と入力しても"123"(文字列)です。
例1:名前を入力して挨拶する(超基本)
name = input("あなたの名前は?: ")
print("こんにちは、" + name + "さん!")
Python実行例:
あなたの名前は?: 太郎
こんにちは、太郎さん!
型変換 — 数値として使いたいとき
input() の戻り値は文字列なので、計算に使う場合は数値に変換します。
age_str = input("年齢を入力してください: ")
age = int(age_str) # 整数に変換
print("10年後は", age + 10, "歳です。")
Python注意:ユーザーが数字以外を入力すると int() はエラーになります。だから次で説明する「入力の検証」を入れます。
例2:安全に数値を入力させる(エラーチェック付き)
while True:
s = input("整数を入力してください: ")
try:
n = int(s)
break
except ValueError:
print("数字じゃないよ!もう一度入力してね。")
print("入力された整数は", n, "です。")
Pythontry/exceptで変換失敗(ValueError)を捕まえ、再入力させます。
複数の値を一行で入力する(split を使う)
例:スペース区切りで 2 つの数を入力して足し算する。
a_str, b_str = input("2つの整数をスペースで区切って入力: ").split()
a = int(a_str)
b = int(b_str)
print("合計は", a + b)
Python便利ですが、ユーザーが間違った数(1つしか入れてない等)を入れるとエラーになるので、実際は検証ループを入れると安心です。
例3:複数を安全に読み取る(検証付き)
while True:
line = input("2つの整数をスペース区切りで入力してください: ")
parts = line.split()
if len(parts) != 2:
print("2つ入力してね。")
continue
try:
a = int(parts[0])
b = int(parts[1])
break
except ValueError:
print("整数だけを入力してください。")
print("a =", a, "b =", b, "合計 =", a + b)
Python文字列の前後の空白を取りたいとき(strip)
ユーザーがスペースや改行を入れがちなときに使います。
s = input("好きな言葉を入力: ").strip()
Python.strip() は先頭・末尾の空白(スペース、改行)を取り除きます。
応用:メニュー入力(選択肢を受け取る)
print("メニュー: 1)追加 2)表示 3)終了")
while True:
choice = input("番号を入力してください: ").strip()
if choice == "1":
print("追加処理を実行します。")
elif choice == "2":
print("表示処理を実行します。")
elif choice == "3":
print("終了します。")
break
else:
print("1〜3の数字を入力してください。")
Python選択肢は文字列で比較するのが簡単("1" と "2")。
実践的なワザ・ヒント
- プロンプトは親切に:「年齢」だけ書くより「年齢(整数)を入力してください:」と書くと親切。
- バリデーション(検証)を入れる:入力は必ず正しいとは限らない。
try/exceptや条件チェックで安全に。 - 空白や大文字小文字の扱い:ユーザー入力を
.strip()や.lower()/.upper()で正規化して扱うと比較が楽。 - 複数行入力:複数行を一気に読み取りたい場合は、ループで
input()を何回か呼ぶか、特定の終了文字(例:END)を決めてループを抜ける方法を使う。 - 自動テストやバッチ処理:
input()は対話向け。自動で値を渡すときは標準入力(パイプ)やファイルを使うこともあります(上級)。
練習問題
- ユーザーから名前と年齢を入力させて、「太郎さんは25歳です。」のように表示するプログラムを書いてください(年齢は整数に変換して扱う)。
- ユーザーが入力した数(整数)が偶数か奇数かを判定するプログラムを書いてください。入力が数字でない場合は再入力を促すこと。
- スペース区切りで複数の単語を入力させ、各単語の長さを表示するプログラムを書いてください。
練習問題 解答例
name = input("名前: ").strip()
age = int(input("年齢: ").strip())
print(name + "さんは" + str(age) + "歳です。")
Pythonwhile True:
s = input("整数を入力: ").strip()
try:
n = int(s)
break
except ValueError:
print("整数を入力してください。")
if n % 2 == 0:
print("偶数です。")
else:
print("奇数です。")
Pythonline = input("単語をスペース区切りで入力: ").strip()
words = line.split()
for w in words:
print(w, "の長さは", len(w), "文字です。")
Pythonまとめ(ポイントだけ)
input()はユーザー入力を受け取り、文字列を返す。- 数値として使うなら
int()やfloat()で変換(→変換失敗に注意)。 .strip()、.split()、try/except、ループを組み合わせると実用的で堅牢な入力処理ができる。- まずは「入力→処理→出力」の簡単な流れを何度も実行して慣れること!
