Python str() 関数
str()str() はPythonで最もよく使われる組み込み関数の1つで、他の型のデータを文字列型に変換するために使用されます。
文字列はPythonで最もよく使われるデータ型の1つです。str()この関数を使うと、数値、リスト、タプルなどを文字列に変換でき、出力や連結に便利です。
単語の意味: strであるstring(文字列)の略です。
基本構文と引数
str()組み込み関数であり、直接呼び出すことができます。
構文形式
str(object) str(object, encoding) str(object, errors)
引数の説明
- 引数 object:
- 型: 任意のオブジェクト
- 説明: 文字列に変換するオブジェクト。
- 引数 encoding(オプション):
- 型: 文字列
- 説明: エンコーディング形式(例: 'utf-8', 'gbk')。
- 引数 errors(オプション):
- 型: 文字列
- 説明: エラーの処理方法。デフォルトは 'strict'(例外をスロー)。他のオプション: 'ignore', 'replace'。
関数の説明
- 戻り値: 文字列オブジェクトを返します。
- デフォルトの動作: 引数なしの場合は空文字列を返します
""。
例
例を通してstr()の使い方を学びましょう。
例1:基本の使い方 - 各種型の変換
例
# 整数を文字列に変換
print(str(123)) # 出力: 123
print(type(str(123))) # 出力: <class 'str'>
# 浮動小数点数を文字列に変換
print(str(3.14159)) # 出力: 3.14159
# ブール値を文字列に変換
print(str(True)) # 出力: True
print(str(False)) # 出力: False
# リストを文字列に変換
print(str([1, 2, 3])) # 出力: [1, 2, 3]
# タプルを文字列に変換
print(str((1, 2, 3))) # 出力: (1, 2, 3)
# 辞書を文字列に変換
print(str({"name": "Tom", "age": 20})) # 出力: {'name': 'Tom', 'age': 20}
# 空の引数
print(str()) # 出力: (空行)
print(str(123)) # 出力: 123
print(type(str(123))) # 出力: <class 'str'>
# 浮動小数点数を文字列に変換
print(str(3.14159)) # 出力: 3.14159
# ブール値を文字列に変換
print(str(True)) # 出力: True
print(str(False)) # 出力: False
# リストを文字列に変換
print(str([1, 2, 3])) # 出力: [1, 2, 3]
# タプルを文字列に変換
print(str((1, 2, 3))) # 出力: (1, 2, 3)
# 辞書を文字列に変換
print(str({"name": "Tom", "age": 20})) # 出力: {'name': 'Tom', 'age': 20}
# 空の引数
print(str()) # 出力: (空行)
実行結果の期待値:
123
<class 'str'>
3.14159
True
False
[1, 2, 3]
(1, 2, 3)
{'name': 'Tom', 'age': 20}
コードの解説:
- 数値を文字列に変換する場合、元の数値表現が維持されます。
- ブール値を文字列に変換する場合、先頭文字が大文字になります。
- リスト、タプル、辞書などのコンテナ型は、それらの文字列表現に変換されます。
例2:文字列の連結
例
name = "Tom"
age = 20
height = 1.75
# str() で変換してから連結
info = name + " " + str(age) + "歳 " + str(height) + "メートル"
print(info) # 出力: Tom 20歳 1.75メートル
# f-stringを使用(推奨方法)
info = f"{name} {age}歳 {height}メートル"
print(info) # 出力: Tom 20歳 1.75メートル
# フォーマット出力
print("名前: " + str(name)) # 出力: 名前: Tom
age = 20
height = 1.75
# str() で変換してから連結
info = name + " " + str(age) + "歳 " + str(height) + "メートル"
print(info) # 出力: Tom 20歳 1.75メートル
# f-stringを使用(推奨方法)
info = f"{name} {age}歳 {height}メートル"
print(info) # 出力: Tom 20歳 1.75メートル
# フォーマット出力
print("名前: " + str(name)) # 出力: 名前: Tom
実行結果の期待値:
Tom 20岁 1.75米 Tom 20岁 1.75米 姓名: Tom
コードの解説:
str()変換後はプラス記号で文字列を連結できます。- 現代のPythonでは、f-stringを使用した文字列フォーマットが推奨されており、より簡潔で読みやすくなります。
例3:バイトとエンコーディングの処理
例
# バイト文字列を文字列に変換(エンコーディングを指定する必要があります)
data = b"Hello"
s = str(data, encoding='utf-8')
print(s) # 出力: Hello
# エンコーディングエラーの処理
data = b"Hello\x80"
s = str(data, encoding='utf-8', errors='ignore')
print(s) # 出力: Hello(不正なバイトを無視)
s = str(data, encoding='utf-8', errors='replace')
print(s) # 出力: Hello(置換文字で置き換え)
data = b"Hello"
s = str(data, encoding='utf-8')
print(s) # 出力: Hello
# エンコーディングエラーの処理
data = b"Hello\x80"
s = str(data, encoding='utf-8', errors='ignore')
print(s) # 出力: Hello(不正なバイトを無視)
s = str(data, encoding='utf-8', errors='replace')
print(s) # 出力: Hello(置換文字で置き換え)
実行結果の期待値:
Hello Hello Hello
この例ではstr()バイトとエンコーディングを処理する際の使い方を説明しています。
その他の拡張