Pythonで文字列と数値を一緒に出力しようとしたときに、エラーが出て困った経験はありませんか?
この記事では、数値(int型やfloat型)を文字列として扱う方法をわかりやすく解説します。
そもそも「型」ってなに?
Pythonには、「データの種類(型)」という概念があります。
データ | 型(type) |
---|---|
"Hello" | str (文字列型) |
1000 | int (整数型) |
3.14 | float (小数型) |
異なる型は、直接足し算・連結できません。
よくあるエラー(失敗例)
sum = 1000
print("代金は" + sum + "円です")
「sum」はこのままでは出力できません。実行してみると以下のようなエラーが出ます。
TypeError: must be str, not int
これは型式が違うために出るエラーになります。エラーの内容は型が違うというものです。この場合「sum」を文字列に型式変換する必要があります。
解決方法①:str()関数で数値を文字列に変換する
price = 1000
print("代金は" + str(price) + "円です")
出力結果
代金は1000円です
str()
で整数(int)を文字列(str)に変換すれば、+
で連結できます!
解決方法②:「,(カンマ)」で区切る
price = 1000
print("代金は", price, "円です")
この書き方なら、型が違っても自動的にスペース区切りで出力されます。
出力結果
代金は 1000 円です
ただし、カンマで区切った部分の間には スペースが入る ので注意が必要です。
解決方法③:format() を使う
price = 1000
print("代金は{}円です".format(price))
出力結果
代金は1000円です
{}
の中に format()
の引数が入ります。複数の値を代入することもできます。
解決方法④:f文字列(Python3.6以降)
Python 3.6以降では、**f文字列(f-string)**という便利な記法が使えます。
price = 1000
print(f"代金は{price}円です")
出力結果
代金は1000円です
最も読みやすく、現在のPythonでは推奨されている書き方です。
まとめ:文字列と数値を組み合わせる4つの方法
方法 | 例 | 特徴 |
---|---|---|
str() で変換 | "代金は" + str(price) + "円" | 文字列連結向け |
, で区切る | print("代金は", price, "円") | 型を気にせず使える |
format() 関数 | "代金は{}円".format(price) | 古くからある標準的手法 |
f文字列 | f"代金は{price}円" | 最新・推奨の書き方 |
補足:数値同士の演算との違い
数値同士なら型が同じなので、通常の演算が可能です。
a = 100
b = 200
print(a + b) # → 300
ただし、文字列と数値は別物です!
print("100" + "200") # → "100200"(結合)
これは数値の足し算ではなく、文字列の連結になるので注意!
よく使う型変換まとめ
関数 | 説明 |
---|---|
str() | 数値などを文字列に変換 |
int() | 文字列や浮動小数を整数に変換 |
float() | 整数や文字列を小数に変換 |
📌 関連記事