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() が返す値の型は?