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

Pythonで文字列(str)と数値(int)を連結する方法をわかりやすく解説

Pythonでは、文字列(str型)と数値(int型)をそのまま + 演算子で連結することはできません。異なる型同士の連結はエラーになるため、数値をあらかじめ文字列に変換(キャスト)しておく必要があります。

str()関数を使った基本的な連結方法

最も一般的な方法は、str() 関数を使って数値を文字列に変換してから連結するやり方です。

>>> a = "string"
>>> b = 1
>>> print(a + str(b))
string1

このように、str(b) によって整数 1 が文字列 "1" に変換されるため、文字列同士の連結として正しく処理されます。もし str() を使わずに a + b と書くと、TypeError: can only concatenate str (not "int") to str というエラーが発生します。

Python 2のバッククォート(``)による変換

Python 2では、数値をバッククォート(`)で囲むことでも同じ結果が得られました。これは repr() を呼び出すのと同等の動作です。

>>> a = "string"
>>> b = 1
>>> print a + `b`
string1

ただし、バッククォートによる変換はPython 3で廃止されています。現在の開発では使用できないため、str() 関数を使うようにしましょう。

より現代的な方法:f文字列とformat()メソッド

実務では、文字列連結よりもフォーマット済み文字列リテラル(f文字列)を使うのがおすすめです。Python 3.6以降で利用でき、コードが読みやすくなります。

>>> a = "string"
>>> b = 1
>>> print(f"{a}{b}")
string1

また、format() メソッドや % 演算子を使った書式指定も広く使われています。

>>> print("{}{}".format(a, b))
string1

まとめ

  • 文字列と数値を直接連結するとエラーになるため、str() で数値を文字列に変換する必要がある
  • Python 2のバッククォート記法はPython 3では廃止済み
  • 可読性を重視するならf文字列(f-string)の利用が推奨される
  1. Pythonで文字列をint・floatに変換する方法をわかりやすく解説

    Pythonでは、ユーザー入力やファイル読み込みなどで取得した数値は、多くの場合文字列(str型)として扱われます。そのままでは計算に使えないため、int() や float() を使って数値型へ変換(パース)する必要があります。ここでは、変換に失敗した場合に備えた例外処理(try-except)を組み合わせた、安全な変換方法を紹介します。文字列をint(整数)に変換する整数を表す文字列をint型に変換するには、int() 関数を使用します。変換できない文字列が渡されると ValueError が発生するため、try-exceptで捕捉しておくと安心です。try:  &nb

  2. Pythonで区切り文字(str)を指定して文字列を分割する方法

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