Python 入門コース / 第1章 導入(第1〜8回) / レッスン 7
input と型変換
input() は文字列を返す
input() はユーザーの入力を受け取りますが、返ってくるのは必ず文字列です。数値のつもりで計算すると、足し算ではなく連結になったり TypeError になったりします。
input.py
age = input("年齢を入力:")
print(type(age)) # <class 'str'>
print(age + 10) # TypeError: can only concatenate str (not "int") to str
int() / float() / str() で変換する
受け取った文字列を int() や float() に通してから計算します。逆に数値を文字列に混ぜるときは str()(または f-string)です。
convert.py
age = int(input("年齢を入力:"))
print(f"来年は{age + 1}歳ですね")
height = float(input("身長(m)を入力:"))
weight = float(input("体重(kg)を入力:"))
bmi = weight / height ** 2
print(f"BMI: {bmi:.1f}")
※ ブラウザ内の実行環境では input() が使えないため、この回のコードは手元の python3 ファイル名.py で試してください。変換の流れだけは下のエディタで確認できます。
editor.py
変換できない入力への備え
数字以外を入力されると ValueError で止まります。対処は 2 通り。value.isdigit() で事前に確かめるか、第 33 回で学ぶ try / except で失敗を捕まえるかです。第 15 回の数当てゲームでは前者を使います。
✅ 理解度チェック
input() が返す値の型は?