【Python】数値と文字列を変換する方法をわかりやすく解説

はじめに

Pythonでは、数値型と文字列型を使い分ける場面が多くあります。
例えば、数値を文字列として保存したい場合や、ユーザーから入力された文字列を数値として計算に使いたい場合が代表的です。
実務でも、APIから受け取ったデータを加工するときや、ファイルへの書き込み・読み込みなど、多くのケースで型変換を求められます。

しかし、はじめのうちは「文字列なのか数値なのか」でエラーが出てしまい、混乱することがあるかもしれません。
そこで本記事では、Pythonにおける数値と文字列の基本を振り返りながら、どのように型変換を行えばよいかをわかりやすく解説していきます。

この記事を読むとわかること

  • Pythonの数値と文字列がどう扱われているか
  • 数値から文字列に変換するときの具体的な方法
  • 文字列から数値に変換するときの具体的な方法
  • 実務でよく使うフォーマット指定やエラー対策のポイント

ここを押さえておくことで、日常的な処理でも安心してデータを扱えるようになり、効率的に開発を進めやすくなるでしょう。

Pythonにおける数値と文字列の基礎

プログラムで何らかの値を扱う場合、Pythonではまず「型」を意識する必要があります。
数値型の代表例としては intfloat が挙げられ、文字列型には str があります。
この型をしっかり区別しないと、加算や結合などを行うときにエラーが出てしまうことがあります。

例えば、文字列同士ではプラス演算子 + を使うと結合ができますが、数値と文字列を直接足そうとするとエラーが発生します。
次のようなケースはエラーとなります。

# 文字列と数値をそのまま足そうとする例
text = "Score: "
value = 100
result = text + value  # TypeError が発生

このエラーは「文字列と数値が混在しているから結合できない」という意味合いです。
この問題を解決するには「型変換」を行う必要があります。

数値から文字列へ変換する方法

開発現場では、数値を文字列として扱いたい状況がよくあります。
たとえば、結果を画面に表示するときや、ログにテキストとして書き込む場合などが典型的です。

str() 関数を使った変換

もっとも基本的な方法は、組み込み関数の str() を使うものです。
以下のように簡単なコードで確認できます。

score = 100
text_score = str(score)
print(text_score)        # "100"
print(type(text_score))  # <class 'str'>

str() を使えば、整数でも浮動小数点数でも、文字列に変換できます。
例えば、ログを作成するときに数値をまとめて文字列にする操作は、プロジェクトでも頻繁に出てきます。

文字列フォーマットでの変換

もうひとつよく使われるのが、文字列フォーマット を利用する方法です。
Pythonでは、format() 関数や f文字列 (フォーマット文字列) などを使うことで、より柔軟な書き方が可能です。

score = 100
formatted_text = "Your score is {}".format(score)
print(formatted_text)  # "Your score is 100"

# f文字列(フォーマット文字列)の例
f_text = f"Your score is {score}"
print(f_text)          # "Your score is 100"

実務でレポートを作成するときやデータを整形するときは、数値だけでなく日付や小数点以下の桁数調整が必要になることがあります。
そんなときは format() や f文字列の書式指定を組み合わせることで、目的の形に仕上げることができます。

開発現場での活用シーン

  • ログ生成:数値の結果をテキストとしてファイルに書き込む
  • メッセージ表示:ユーザーに数値を含んだメッセージを返す
  • レポート作成:数値を整形してレポートやメール文面を作る

このように、数値を文字列に変換する処理は幅広い場面で登場するため、str() や文字列フォーマットはしっかり使い方を身につけておくと便利です。

文字列から数値へ変換する方法

次に、文字列から数値への変換です。
ユーザー入力やファイルから読み込んだデータは、多くの場合、文字列になっています。
これを計算や統計処理などに使うには数値型に変換する必要があります。

int() 関数で整数に変換

文字列を整数に変換する際は int() を使います。
例えば、Webアプリでフォームに入力された年齢を受け取り、プログラム内で加減算したい場合などで利用します。

age_str = "25"
age_int = int(age_str)
print(age_int)         # 25
print(type(age_int))   # <class 'int'>

ただし、int() は整数を表す文字列しか変換できません。
"25.5" のような文字列を変換しようとするとエラーが出るので注意が必要です。

float() 関数で小数点を含む数値に変換

小数点を含む文字列の場合は float() を使います。
気温や金額など、小数点が必要になる数値を扱うときによく登場します。

price_str = "12.99"
price_float = float(price_str)
print(price_float)       # 12.99
print(type(price_float)) # <class 'float'>

これによって、小数点を含む演算が正しく行えます。
小数点数を整数に変換したい場合は、先に float() で変換してから int() で切り捨てたりする方法が考えられます。

変換できない文字列を扱う場合

入力エラーなどで、数値に変換できない文字列を受け取ることもあります。
たとえば "abc""" のような内容は変換しようとするとエラー (ValueError) になります。

# 値が数値である保証がない例
user_input = "abc"
number = int(user_input)  # ValueError

こうした場合は、開発現場ではエラーハンドリングを行うことが一般的です。
ユーザーに再入力を促すメッセージを表示したり、別のデフォルト値を用意したりすることで、アプリが意図せず落ちないように対策します。

文字列を数値に変換するときは、期待しない文字列が混ざっている可能性を考えましょう。
万が一エラーが発生しても、システム全体が停止しないように、エラーハンドリングを入れることをおすすめします。

実務での活用場面と注意点

実務での例を少し挙げながら、文字列と数値の変換がどのように使われているか見てみましょう。

ファイルやデータベースとのやり取り

CSVファイルを読み込むと、基本的に内容は文字列として扱われます。
しかし、合計や平均値を算出したいカラムがある場合は int()float() で変換してから計算します。
もし変換できないデータが混じっていたらどうするか、あらかじめ考えておくと実運用でエラーを減らせます。

ユーザーインターフェース上の表示

ユーザーに数値結果を見せたい場合は、str() やフォーマット文字列で文字列に変換し、表示用の文言に組み込みます。
それによって、直感的に読みやすいメッセージやレイアウトを作りやすくなります。

小数点の扱い方

金額や科学計算などでは小数点以下の桁数を厳密に管理したいケースがあります。
float() での変換後に、小数点以下を何桁表示にするかというルールを決めておくと、可読性が向上します。
たとえば、f文字列で f"{price_float:.2f}" のように書くと、小数点以下2桁にフォーマットすることが可能です。

型変換でよくある質問・エラー対策

Pythonでよくある混乱は、「数値と文字列を混ぜた状態のまま操作しようとしてしまう」 ことです。
たとえば、数値を計算する前に文字列のまま加算しようとしたり、逆に文字列を結合するのに数値をそのまま足そうとしたりする例が挙げられます。

発生しやすいエラー例

  • TypeError"100" + 100 のように数値型と文字列型を足し算しようとして起こる
  • ValueError:文字列を数値に変換しようとした時、数字以外の文字が含まれていて起こる

こうしたエラーを回避するには、データがどういう型になっているか常に気を配り、必要に応じて str()int(), float() を使って変換するクセをつけることが重要です。

変換の成否を確認する方法

型変換の前に文字列が正しい形式かどうかをチェックする仕組みを入れているプロジェクトも多いです。
例えば、読み取った文字列が数字だけで構成されているかどうかを判定する str.isdigit() や、正規表現を使ったバリデーションを導入する方法があります。

input_str = "123"

if input_str.isdigit():
    print(int(input_str) + 10)  # 133 を出力
else:
    print("数値に変換できない文字列が含まれています")

このように、事前にチェックすることで無駄なエラーを防ぎ、アプリ全体の安定性を高められます。

まとめ

Pythonで数値と文字列を変換する方法としては、主に str(), int(), float(), そして文字列フォーマット (format() や f文字列) を活用するやり方があります。
ログやユーザーへのメッセージ出力、あるいはファイルやAPIから取り込んだ文字列を数値にして計算するなど、開発のあらゆる場面で頻繁に使われます。

型変換を確実に行うためには「変換したい型」と「今の型」を意識して、必要に応じてチェックやエラーハンドリングを入れることがポイントです。
特に文字列から数値へ変換する際には、データが正しい形式になっているかを事前に確認しておくと安心でしょう。

こうした基本を理解しておくことで、予期せぬエラーを回避できるだけでなく、より柔軟なデータ処理が可能になります。
日常的に活用する場面が多いので、引き続き使いこなしながら、スムーズな開発を目指していきましょう。

Pythonをマスターしよう

この記事で学んだPythonの知識をさらに伸ばしませんか?
Udemyには、現場ですぐ使えるスキルを身につけられる実践的な講座が揃っています。