Python の TypeError: must be str, not int エラーを修正
文字列の連結とは、複数の文字列を 1つの文字列に結合することです。Python では、文字列または生の文字列自体を参照する変数間で+
記号を使用して、それらを結合できます。または、結合するすべての文字列をリスト内に配置し、組み込みの join()
メソッド Python を使用してそれらを 1つにマージすることもできます。
上記の両方の方法を使用しているときに、変数のデータ型と生の値に注意しないと、TypeError
例外が発生する可能性があります。この記事では、Python でこの問題を修正する方法について説明します。
Python の TypeError: must be str, not int
エラーを修正
Python でこのエラーを修正するために使用できるいくつかの方法について説明します。
明らかなアプローチ
最初の解決策は明らかです。使用している変数と生の値に注意してください。文字列を整数、クラスオブジェクト、またはブール値と連結しないようにしてください。
Python の str()
メソッド
2 番目の解決策は、Python に組み込まれている str()
メソッドを使用することです。このメソッドは、渡されたオブジェクトの文字列バージョン(整数、浮動小数点値、ブール値、クラスオブジェクト、リストなど)を返します。クラスオブジェクトの場合、このメソッドは __repr __()の結果を返します。
メソッドまたは __str__()
メソッド。この str()
関数を実際に理解するには、次の Python コードを参照してください。
class A:
def __init__(self, x):
self.x = x
def __str__(self):
return f"{self.x}"
print(str(1))
print(str(111.1))
print(str(False))
print(str(True))
print(str(None))
print(str(A(11111)))
print(str([1, 2, 3, 4, 5]))
出力:
1
111.1
False
True
None
11111
[1, 2, 3, 4, 5]
次に、この関数を文字列の連結に使用する方法を見てみましょう。同じことについては、次のコードを参照してください。
a = "Hello World "
b = 1923
c = " Python "
d = 1235.23
e = " Numbers: "
f = [100, 200, 400, 800, 1600]
x = a + str(b) + c + str(d) + e + str(f)
print(x)
出力:
Hello World 1923 Python 1235.23 Numbers: [100, 200, 400, 800, 1600]
str()
関数は、すべての値をそれぞれの文字列値に変換します。さらに、例外が発生することなく、文字列を安全に連結できます。
Python でフォーマットされた文字列
3 番目の方法は、フォーマットされた文字列を使用することです。フォーマットされた文字列は、接頭辞 f
が付いた文字列を指します。これらの文字列を使用すると、通常の文字列内に変数またはロジックを挿入できます。公式化された文字列または最終的な文字列には、変数によって格納された値と、ロジックまたは関数呼び出しによって返される値の文字列表現が含まれます。ロジックと変数は、文字列内にある {}
内に挿入されます。
説明したアプローチについては、次の Python コードを参照してください。
a = 1923
b = 1235.23
c = [100, 200, 400, 800, 1600]
print(f"Hello World {a} Python {b} Numbers: {c}")
出力:
Hello World 1923 Python 1235.23 Numbers: [100, 200, 400, 800, 1600]
文字列の先頭に f
があり、文字列内に複数の {}
があることに注意してください。
関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません