まず結論

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

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

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

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

イメージで考える

input() は、キーボードから届いた紙をそのまま受け取るイメージです。

紙に 12 と書いてあっても、最初は「数字」ではなく「文字が書かれた紙」として届きます。

計算に使いたいときだけ、int() という変換ゲートを通して数値にします。

なぜ計算できない?

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

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() に変換すると読むと混乱しにくくなります。

手を動かすミニ練習

入力した値の型を表示して、input() が文字列を返すことを確認しましょう。

age = input("年齢は?")

print(age)
print(type(age))

数字を入力しても、最初は文字列として扱われます。