Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでデータ型を文字列に変換する方法|str()関数と__str__()メソッドの使い方

Pythonでは、str()関数を使うことで、あらゆる組み込みデータ型(int、float、complex、list、tuple、dictなど)を簡単に文字列表現へ変換できます。また、ユーザー定義クラスの場合は__str__()メソッドを定義しておくことで、オブジェクトをわかりやすい文字列として出力できるようになります。

組み込みデータ型を文字列に変換する

str()関数の引数に数値やリストなどのオブジェクトを渡すと、その文字列表現が文字列(str型)として返されます。

>>> str(10)
'10'
>>> str(11.11)
'11.11'
>>> str(3+4j)
'(3+4j)'
>>> str([1,2,3])
'[1, 2, 3]'
>>> str((1,2,3))
'(1, 2, 3)'
>>> str({1:11, 2:22, 3:33})
'{1: 11, 2: 22, 3: 33}'

このように、整数・浮動小数点数・複素数・リスト・タプル・辞書など、すべての組み込み型はstr()関数ひとつで文字列化できます。数値を文字列と連結したい場合などにもよく使われる基本的なテクニックです。

ユーザー定義クラスを文字列に変換する

自作したクラスのオブジェクトを文字列に変換したい場合は、クラス内に__str__()メソッドを定義する必要があります。このメソッドは、str()関数やprint()関数が呼び出されたときに自動的に実行され、その戻り値がオブジェクトの文字列表現として使用されます。

>>> class rectangle:
def __init__(self):
self.l=10
self.b=10
def __str__(self):
return 'length={} breadth={}'.format(self.l, self.b)

>>> r1=rectangle()
>>> str(r1)
'length=10 breadth=10'

なお、__str__()メソッドを定義していない場合、str()を実行すると「<__main__.rectangle object at 0x...>」のようにオブジェクトのアドレス情報が表示されるだけです。デバッグやログ出力の可読性を高めるためにも、ユーザー定義クラスには__str__()を定義しておくことをおすすめします。

まとめ

  • 組み込みデータ型はstr()関数ですべて文字列に変換できる
  • ユーザー定義クラスは__str__()メソッドを定義することで、独自の文字列表現を返せる
  1. Pythonで区切り文字(str)を指定して文字列を分割する方法

    Pythonで文字列を特定の区切り文字で分割する方法は、主に2つあります。1つは文字列クラスの組み込みメソッド split() を使う方法、もう1つは正規表現モジュール re の re.split() を使う方法です。それぞれの使い方を詳しく見ていきましょう。 split()メソッドで文字列を分割する PythonのStringクラスには split() というメソッドが用意されており、区切り文字をオプション引数として指定できます。引数を省略した場合、デフォルトの区切り文字は空白(ホワイトスペース)になります。 >>> aa-ab-ca.split(-) [aa, ab, c

  2. Pythonで文字列を逆順にする方法|スライスとreversed()の使い方を解説

    Pythonでは、文字列スライスやrange演算子を活用することで、文字列を簡単に逆順(反転)にすることができます。この記事では、代表的な2つの方法をわかりやすく解説します。 方法1:スライス記法 [::-1] を使う(推奨・高速) 最もシンプルで一般的なのが、スライス記法を使う方法です。ステップに -1 を指定するだけで、文字列を後ろから前へ一文字ずつ取り出せます。 >>> Hello[::-1] olleH >>> Halloween[::-1] neewollaH スライスの仕組み 角括弧 [] の中には、コロン「:」で区切った3つの値を指定できます