まず結論
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))
数字を入力しても、最初は文字列として扱われます。
3行まとめ
- input()の戻り値は必ず文字列。
- 見た目が数字でも、そのままでは数値計算できない。
- 数値として使うならint()やfloat()で変換する。