Python str()の使い方および2つの注意事項

Python str()関数は、文字列を処理する際に最も基本的な関数です。この関数は、さまざまなデータ型を文字列に変換する役割を果たし、プログラミングを行う際に非常によく使用されます。今回の記事では、str()関数の基本的な使い方から応用方法までを解説します。

Python str()関数とは?

str()関数はPythonの組み込み関数であり、整数、浮動小数点数、リスト、タプルなどのさまざまなデータ型を文字列(String)に変換します。文字列とは、文字の並びであり、Pythonではシングルクォート(’)またはダブルクォート(”)で囲まれたデータを指します。

たとえば、数値データの123をstr()関数を使用して文字列に変換すると、’123’になります。この時、数値と文字列の違いは非常に重要です。数値は計算が可能ですが、文字列はそのままの文字として扱われます。

Python
num = 123
str_num = str(num)
print(str_num, type(str_num))

このコードでは、type()関数はデータの型を教えてくれます。numは整数型(int)でしたが、str()を通して変換されたstr_numは文字列型(str)になっていることが確認できます。

図1. Python str()を使用して数値を文字列に変換
図1. Python str()を使用して数値を文字列に変換

str()関数のさまざまな活用

数値を文字列に変換

str()関数の最も基本的な活用方法は、数値を文字列に変換することです。たとえば、計算された値を出力する際に、数値を文字列に変換して他の文字列と一緒に出力することができます。

Python
num1 = 5
num2 = 8
result = str(num1) + "" + str(num2) + "の合計は " + str(num1 + num2) + "です。"
print(result)

このコードでは、num1num2を文字列に変換し、他の文字列と一緒に出力しました。これにより、数値と文字列を組み合わせて出力することができます。

図2. Python str()を使用して数値を文字列と一緒に出力
図2. Python str()を使用して数値を文字列と一緒に出力

リストとタプルを文字列に変換

リストやタプルのようなデータ型も、str()を使用して簡単に文字列に変換できます。これは、特にデータをファイルに保存したり、出力したりする際に便利です。

Python
my_list = [1, 2, 3]
my_tuple = (4, 5, 6)
print("リスト: " + str(my_list))
print("タプル: " + str(my_tuple))

str()を通じてリストやタプルを文字列に変換すると、各要素が文字列に変換され、リストやタプルの形を保ちながら出力されます。

図3. Python str()を使用してリストやタプルを文字列に変換
図3. Python str()を使用してリストやタプルを文字列に変換

ブール値を文字列に変換

ブール(Boolean)値は、真(True)と偽(False)を表すデータ型です。str()関数は、ブール値も文字列に変換できます。この機能は、主に条件文の結果をユーザーに出力する際に役立ちます。

Python
is_active = True
print("アクティブ状態: " + str(is_active))

このコードでは、True値を文字列”True”に変換して出力しています。

str()使用時の注意点

数値演算と文字列の足し算の区別

数値と文字列を混在させて使用する際に注意しなければならない点は、数値は演算が可能ですが、文字列は演算ができないということです。たとえば、文字列と数値を足し算(+)で連結する場合は、数値をstr()で変換する必要があります。

str()を使用せずに、数値と文字列を連結しようとすると、TypeErrorが発生します。以下のコードのように、数値と文字列を直接連結しようとすると、足し算演算子が使えないことが指摘されます。

Python
3 + " eggs"

このように、”TypeError: unsupported operand type(s) for +: ‘int’ and ‘str'”というエラーメッセージが表示されます。

図4. Python str()を使用せずに数値 + 文字列演算を試みた場合のTypeError
図4. Python str()を使用せずに数値 + 文字列演算を試みた場合のTypeError

また、文字列と数値の順番で書かれた次のコードを見てみましょう。

Python
"images of " + 3

文字列が先にある場合でも、’TypeError: can only concatenate str (not “int”) to str’というメッセージが表示されます。

図5. Python str()を使用せずに文字列 + 数値演算を試みた場合のTypeError
図5. Python str()を使用せずに文字列 + 数値演算を試みた場合のTypeError

したがって、数値を文字列と連結するために足し算演算子(+)を使用する場合は、str()関数を使って数値を文字列に変換する必要があります。

データ型に応じた変換の注意点

すべてのデータがstr()で変換できますが、データ型によって変換結果が異なる場合があります。たとえば、リストや辞書のような複雑なデータ型は、その構造に応じて文字列に変換されるため、これを処理する際には可読性を考慮する必要があります。

Python
my_dict = {"name": "中村洋子", "age": 25}
print(str(my_dict))

また、ブール型のTrueやFalseは、str()で文字列に変換した後、再びbool()を使用して変換すると、両方の値がTrueとして扱われるため、注意が必要です。

str()関数の応用

ファイル入出力での活用

str()関数は、ファイルにデータを保存する際にも役立ちます。ファイルは基本的にテキスト形式で保存されるため、数値やリストなどのデータを文字列に変換して保存する必要があります。

Python
my_data = [5, 10, 23, 18, 38, 7]
with open('data.txt', 'w') as file:
    file.write(str(my_data))

このコードでは、リストmy_dataはファイルに保存される前に文字列に変換され、下記のようにファイルに変換された文字列として保存されていることが確認できます。

図6. Python str()を使用してリストを文字列に変換し、ファイルに保存した結果
図6. Python str()を使用してリストを文字列に変換し、ファイルに保存した結果

ウェブ開発での活用

ウェブ開発でも、str()関数は便利に使われます。たとえば、ユーザーが入力したデータをサーバーに送信する際、データ型に関係なく文字列に変換して処理することが多いです。特にJSON形式のデータ送信時、データ型を文字列に変換して送信することが一般的です。

まとめ

Pythonのstr()関数は、さまざまなデータ型を文字列に変換するシンプルで強力なツールです。数値、リスト、ブール値などのさまざまなデータ型を文字列に変換して、簡単に出力したり、ファイルに保存したりできるため、コードをより簡潔に記述することができます。また、演算時に型変換を注意して行うことで、エラーを防ぐことが重要です。ファイル入出力やウェブ開発でも頻繁に使われるため、必ず知っておくべき基本的な関数です。

リファレンス

関連ポスト

コメントする