Pythonで文字列と整数(int)を連結する方法|print関数やformat関数を使ったやり方など解説する

スポンサーリンク

Pythonでは、通常、文字列の連結は + 演算子を用いて行います。

しかし、+演算子はご存知のように、整数や浮動小数点数の足し算にも使われます。

では、オペランドの両側に文字列とintがある場合はどうなるのでしょうか?

Pythonは動的型付け言語なので、コンパイル時にエラーになることはなく、Runtime Errorが発生します。

(具体的には、TypeError例外が発生します。

以下のスニペットがこれを証明しています。

a = "Hello, I am in grade "
 
b = 12
 
print(a + b)

結果は以下の通りです。

Traceback (most recent call last):
  File "concat.py", line 5, in <module>
    print(a + b)
TypeError: can only concatenate str (not "int") to str

つまり、整数と文字列を直接連結することはできないので、オペランドを操作して連結できるようにする必要があります。

これには複数の方法があります。

スポンサーリンク

1. str()の使用

str()` 関数で整数を文字列に変換します。

そして、この新しい文字列を他の文字列と連結すると、次のような出力が得られます。

print(a + str(b))

結果は以下の通りです。

Hello, I am in grade 12

これは、整数を文字列に変換する最も一般的な方法です。

しかし、他の方法も使うことができます。

2. format() の使用法

a = "Hello, I am in grade "
 
b = 12
 
print("{}{}".format(a, b))

出力は前と同じままです。

3. 書式指定子 ‘%’ の使用

a = "Hello, I am in grade "
 
b = 12
 
print("%s%s" % (a, b))

abの両方が文字列であることを指定することもできますが、C 言語風の書式指定子 (%d,%s`) を使って、整数を文字列に連結することもできます。

print('%s%d' % (a,b))

上記のコードでは、出力は変わりません。

4. f-stringsの使用

Python 3.6以降では、Pythonのf-stringsを使って、整数と文字列を連結することができます

a = "Hello, I am in grade "
 
b = 12
 
print(f"{a}{b}")

5. print()を使った文字列の表示

連結された文字列を直接印刷したい場合は、print() を使って連結を行うことができます。

a = "Hello, I am in grade "
b = 12
print(a, b, sep="")

print()のデフォルトのセパレータはスペース (" ") なので、ここではabをヌル文字列のセパレータ (sep`) で連結しています。

まとめ

今回は、様々な方法で整数を文字列に連結する方法を学びました。

タイトルとURLをコピーしました