Pythonで数値を文字列に変換する方法!str()とformat()の使い方
生徒
「Pythonで数字を文字に変えたいんですけど、どうすればいいですか?」
先生
「数字を文字列に変換するには、str()関数やformat()メソッドを使いますよ。」
生徒
「それってどういうときに使うんですか?」
先生
「たとえば、数値と文字を一緒に表示したいときや、計算結果を文章の中に入れたいときですね。では、詳しく見ていきましょう!」
1. str()関数とは?
Pythonでは、数値(整数や小数など)を文字列に変換するにはstr()という関数を使います。関数とは「決まった処理をする命令」のことです。
number = 123
text = str(number)
print(text)
print(type(text))
123
<class 'str'>
このように、数値の123が文字列に変換されて'123'になります。type()関数で型を確認すると、str(文字列)であることがわかります。
2. 数値と文字列を結合したいとき
Pythonでは、文字列と数値をそのままつなげることはできません。まず数値をstr()で文字列に変換する必要があります。
age = 20
message = "年齢は" + str(age) + "歳です"
print(message)
年齢は20歳です
このように、str(age)で数値を文字列に変換することで、文章とつなげることができます。
3. format()メソッドとは?
format()メソッドは、文字列の中に変数の値を埋め込む方法の一つです。{}の中に、後から値を入れる形になります。
age = 25
text = "私は{}歳です".format(age)
print(text)
私は25歳です
{}の部分にageの値が自動的に入ります。数値を文字列に変換する手間がなく、読みやすい書き方です。
4. 複数の数値を同時に入れる
format()を使うと、複数の変数も一度に扱えます。
name = "太郎"
age = 30
message = "名前は{}で、年齢は{}歳です".format(name, age)
print(message)
名前は太郎で、年齢は30歳です
変数の数と{}の数を合わせれば、何個でも差し込むことができます。
5. 書式を整える:小数点の表示
小数点のある数値(たとえば価格や計算結果)を扱うときには、format()を使って表示を整えることができます。
price = 1234.56789
text = "価格は{:.2f}円です".format(price)
print(text)
価格は1234.57円です
:.2fという書き方で、小数点以下2桁までに調整できます。お金の金額や割合などでよく使われます。
6. 文字列に変換した数値を保存・加工する
数値を文字列に変換すると、ファイルに保存したり、文章として画面に出力したり、SNS投稿用の文を作ったりと、いろんな使い方ができます。
temperature = 26.3
message = "今日の気温は" + str(temperature) + "度です"
print(message)
今日の気温は26.3度です
このように、実際の数値をわかりやすく表示するためには、数値を文字列に変換する操作がとても大切になります。
7. format()の応用:順番を指定する
format()では、{0}や{1}のように数字で順番を指定することもできます。
text = "{1}と{0}が逆になります".format("左", "右")
print(text)
右と左が逆になります
位置を自由に指定できるので、使い方によってはとても便利です。
8. f文字列(f-string)もおすすめ
Python 3.6以降では、f"文字列"という新しい書き方もあります。これは、{}の中に直接変数を書くだけで、読みやすくて書きやすい方法です。
name = "花子"
age = 22
text = f"名前は{name}、年齢は{age}歳です"
print(text)
名前は花子、年齢は22歳です
f文字列は、str()やformat()よりもシンプルに書けるため、最近のPythonではよく使われています。
まとめ
Pythonで数値を文字列に変換する方法として代表的なものがstr()関数とformat()メソッドであり、どちらもプログラムを読みやすく整理し、柔軟な文章生成やデータ加工に役立つ基本的な機能です。数値をそのまま画面に表示するだけなら単純ですが、文章と結合したり、整った形式で見せたり、複数の値を一度に扱ったりする場合には、数値を文字列として扱えるように変換する仕組みが欠かせません。str()はもっともシンプルで迷わず使える変換方法であり、特に初心者が最初に覚える変換手段として最適です。一方、format()は文章中の好きな位置に値を埋め込めるため、動的に文章を生成する処理に非常に適しています。Pythonが持つ柔軟な文字列操作を活かすためにも、この二つの使い方をしっかり身につけておくことはとても重要です。 数値と文字列を一緒に扱う場面は、プログラムの中で意外なほど多くあります。たとえば入力フォームから受け取った数値を文章で表示したり、計算結果を説明文の中に差し込んだり、画面の出力を読みやすく整えたりする場合、数値のままでは扱えないため、必ず文字列化する必要があります。また、ログの生成やメールの送信、レポート形式の出力などでは、文章と数値を混ぜて表現することがほぼ必須となるため、str()やformat()のような変換処理は実践的なプログラムのあらゆる場面で活用されます。この変換の仕組みを理解しておくことで、プログラムの見通しも良くなり、コードの品質向上にもつながります。 format()を使うと、書式を整えた美しい出力が簡単に実現できるのも大きな魅力です。小数点以下の桁数を調整する処理は日常的に行われる計算の中で頻繁に登場し、価格表示や割合表示、統計値の出力など、正確で読みやすい数値表示を行うためには欠かせない技術です。{"{:.2f}".format(price)} のように書けば、面倒な繰り上げ処理も自動で行ってくれます。また、複数の値を同時に埋め込む場合でも、{} の順番さえ意識すれば柔軟に文章の構造を編集でき、より読みやすいコードが書けるようになります。読み手の目を意識したプログラミングは、実用的なコードを書くうえでとても大切です。 また、Pythonではformat()だけでなく、f文字列という新しい記法もよく使われるようになってきました。f文字列は処理速度が速く、文章の中で変数を直感的に扱えるため、近年ではもっとも利用される機会の多い方法です。たとえば f"{name}さんの年齢は{age}歳です" と書くだけで、必要な部分に変数が埋め込まれ、読みやすいコードになります。str()、format()、そしてf文字列はどれも数値を文字として扱える基本的な方法であり、用途に応じて使い分けることで、整った美しいプログラムを組み立てることができます。 数値を文字列に変換する操作は、単に表示のためだけに行われるものではありません。データを加工して別の形式へ変換したり、整形した文章をファイルに保存したり、Web APIのレスポンスを生成したりと幅広い活用場面があります。実際の開発では、これらの変換はほんの小さな技術のようでありながら、完成度の高いプログラムを作り上げるために欠かせない要素であることを強く実感します。今回学んだ基礎知識は、今後より高度な処理を学ぶ上でも必ず役立ちます。
サンプルコード:str()・format()・f文字列の比較例
number = 42
price = 1234.567
# str()で変換
text1 = "数値は" + str(number) + "です"
# format()で変換
text2 = "数値は{}です".format(number)
# 小数点以下2桁まで整形
text3 = "価格は{:.2f}円です".format(price)
# f文字列で埋め込み
text4 = f"数値は{number}、価格は{price:.2f}円です"
print(text1)
print(text2)
print(text3)
print(text4)
このサンプルコードでは、str()・format()・f文字列の違いがよく分かるようになっており、それぞれの特徴や用途を比べながら習得できます。数値を文字として扱いたい場面は多く、目的に応じて最適な方法を選ぶことで、処理の流れも理解しやすくなります。
生徒
「今日の内容で、str()とformat()の違いがよく分かりました!特にformat()で小数点を整える方法は便利ですね。」
先生
「その気づきはとても良いですね。書式を整える方法を知っておくと、計算結果を見やすく表示できるようになりますし、実務でもよく使われますよ。」
生徒
「あと、f文字列は書きやすくてびっくりしました。自然に書ける感じがします。」
先生
「最近のPythonではf文字列がよく使われています。用途に応じてどの方法が一番読みやすいかを考えながら使い分けると、さらに良いコードになりますよ。」
生徒
「はい!次から数値を扱うときは、今回の方法を使ってみます!」