まず結論
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() に変換すると読むと混乱しにくくなります。
3行まとめ
- input()の戻り値は必ず文字列。
- 見た目が数字でも、そのままでは数値計算できない。
- 数値として使うならint()やfloat()で変換する。