Pythonで数値を文字列に変換する方法!str()とformat()の違いと使い分け
生徒
「Pythonで数値を文字列に変換する方法ってありますか?」
先生
「はい、Pythonにはstr()関数やformat()メソッドなど、数値を文字列に変える方法がいくつかありますよ。」
生徒
「どちらを使えばいいのか迷っちゃいます。違いってなんですか?」
先生
「その違いや使い分けについて、わかりやすく説明していきますね!」
1. Pythonで「数値」を「文字列」に変換するとは?
Python(パイソン)では、数値(たとえば100や3.14)をそのままでは文字列として使えません。「こんにちは100円です」と表示したいときには、数値を文字列に変換する必要があります。
このとき使うのがstr()やformat()です。
2. 基本のstr()関数を使ってみよう
str()は、どんなデータ型(数値やブール値など)も文字列に変えることができる関数です。
price = 100
text = str(price)
print("値段は" + text + "円です")
このコードでは、数値の100をstr(price)で「100」という文字列に変えています。
3. format()メソッドでスマートに文字列を作る
format()は、文章の中に「{}」のような空欄を作って、そこに値を埋め込むイメージの方法です。
price = 100
text = "値段は{}円です".format(price)
print(text)
このように、format()は「文章に数値を混ぜる」場面にぴったりです。
4. str()とformat()の違いを比べてみよう
str()は「とにかく数値を文字列に変えたい」ときに使います。
一方format()は「文章の中に数値を埋め込みたい」ときに便利です。
以下の例を見てみましょう。
age = 20
# str() の場合
text1 = "私は" + str(age) + "歳です。"
# format() の場合
text2 = "私は{}歳です。".format(age)
print(text1)
print(text2)
5. format()の応用:複数の数値を入れる
format()は複数の値をまとめて入れることもできます。
name = "たろう"
age = 25
text = "{}さんは{}歳です".format(name, age)
print(text)
「{}」の数に合わせてformat()に並べれば、自動的に順番に入ります。
6. format()の位置指定や並べ替えもできる
実はformat()には「順番を入れ替える」テクニックもあります。
text = "{1}は{0}歳です".format(30, "じろう")
print(text)
この例では、{1}に「じろう」、{0}に「30」が入っています。
7. 数値を含む文字列の作成によくあるミスと注意点
Pythonでは、文字列と数値は+で直接くっつけることはできません。間にstr()やformat()が必要です。
number = 10
# print("スコア:" + number) ← エラーになります!
print("スコア:" + str(number)) # OK
「スコア:10」のように表示したいなら、まずstr()で文字列にしましょう。
まとめ
この記事では、Pythonで数値を文字列へ変換するために欠かせないstr関数とformatメソッドの使い方を、基本から応用までまとめて振り返りました。数値をそのまま文章として扱おうとするとエラーになってしまうため、文字列への変換はPythonプログラミングの基礎でありながら実務でも非常に重要な操作です。特に、strはどんな値でも文字列化できるため、数値やブール値をそのまま文章に組み込みたい場面でよく利用されます。一方で、formatは文章の中に値を自然な形で挿入できる便利な仕組みであり、複数のデータを整った文に仕上げたいときに大きな力を発揮します。 さらにformatでは、複数の値を順番に埋め込んだり、並び替えたりする柔軟な書き方が可能で、見やすい文章を構築するときに非常に役立ちます。位置を指定して値を挿入したり、文章構造を先に組み立ててから後でデータだけ流し込んだりできるため、幅広い処理に対応できます。また、文字列と数値をそのまま連結しようとしてエラーが起きるという初心者がつまずきやすいポイントも確認し、必ずstrで変換する必要がある点も理解を深められました。数値を混じえた文章を作成するときには、どちらの方法が適しているのかを意識することで、より読みやすく意図に合うコードを書くことができます。 Pythonでの文字列操作は、日常的なデータの加工やレポート生成、ログ出力、ユーザーインターフェースの表示などあらゆる場面で必要とされる基本技術です。今回の内容を基礎として身につけておくことで、これから学ぶf文字列やformatの応用書式ともスムーズにつながり、プログラムの表現力がぐんと広がります。数値を扱いながら自然な文章を生成する技術は、Pythonを使う多くの場面で役立つ重要なスキルです。
サンプルプログラムでもう一度確認しよう
以下は、strとformatの使い分けを実際のコードで再確認できる例です。数値を文字列として扱うときの違いがより鮮明になります。
price = 250
count = 3
# str() を使った場合
text1 = "合計金額は " + str(price * count) + " 円です。"
# format() を使った場合
text2 = "合計金額は{}円で、{}個の商品を購入しました。".format(price * count, count)
print(text1)
print(text2)
このように、strは数値だけを手早く文字列にしたいときに最適で、formatは文章全体を整えたいときに便利です。どちらの方法もPythonの文字列処理に欠かせない基礎であり、実務でデータを扱う際にも大いに活躍します。特に、計算結果をそのまま文章に入れたい場合や、複数の値を自然な文章に組み込む場合はformatの表現力が特に役立ちます。目的に応じて方法を選ぶことで、美しく読みやすい出力を作成できるようになります。
生徒
「strとformatの違いがよくわかりました!文章の中に値を入れたいときはformatのほうが使いやすいですね。」
先生
「そのとおりです。formatは文章の構造をそのまま保ちつつ、あとから値を入れることができますから、とても便利なんです。」
生徒
「でも簡単に文字列にしたいだけならstrを使ったほうがシンプルで良さそうですね。」
先生
「はい、strはとても直感的で速く書けます。どちらもよく使うので、場面に合わせて選べるようになるととても便利ですよ。」
生徒
「formatで順番を入れ替えたり複数の値を入れたりできるのも面白いと思いました!今後のプログラムで使ってみたいです。」
先生
「たくさん使うことで自然と身につきます。文章を作るプログラムを書くときには必ず役に立ちますから、ぜひ練習してみてくださいね。」