まず結論

input() で受け取った値は、必ず文字列です。

age = input("年齢は?")
print(age)

12 と入力しても、age には数値の 12 ではなく、文字列の "12" が入ります。

こんなときに読む記事です

次のようなところで止まった人向けです。

  • input() で数字を入れたのに計算できない
  • age + 1 がエラーになる
  • 文字列と数値の違いが分からない

input() は「キーボードから入力された文字」を受け取る関数です。
そのため、まずは文字列として扱われます。

なぜ計算できない?

次のコードはエラーになります。

age = input("年齢は?")
print(age + 1)

age は文字列で、1 は数値です。
Pythonは文字列と数値をそのまま足せません。

数値に変換する

整数として計算したいなら、int() を使います。

age = int(input("年齢は?"))
print(age + 1)

小数を扱いたいなら、float() を使います。

height = float(input("身長は?"))
print(height)

文字として使うなら変換しない

名前やメッセージのように、文字として使うなら変換は不要です。

name = input("名前は?")
print(name + "さん")

この場合、name は文字列のままで問題ありません。

読み方のコツ

input() を見たら、まず「文字列が入る」と考えます。
そのあとで、計算に使うなら int()float() に変換すると読むと混乱しにくくなります。