TypeError: must be str, not int
문자열 연결은 여러 문자열을 하나의 문자열로 결합하는 것을 말합니다. 파이썬에서는 문자열을 참조하는 변수 사이에 +
기호를 사용하거나 원시 문자열 자체를 결합하여 결합할 수 있습니다. 또는 결합하려는 모든 문자열을 목록에 넣고 내장 join()
메서드를 사용하여 하나로 병합할 수 있습니다.
위의 두 가지 방법을 모두 사용하는 동안 변수의 데이터 유형과 원시 값에 주의하지 않으면 TypeError
예외가 발생할 수 있습니다. 이 기사에서는 Python에서 이 문제를 해결하는 방법에 대해 설명합니다.
Python에서 TypeError: must be str, not int
수정
우리는 파이썬에서 이 오류를 수정하는 데 사용할 수 있는 몇 가지 방법에 대해 논의할 것입니다.
명백한 접근
첫 번째 해결책은 분명한 것입니다. 사용 중인 변수와 원시 값에 대해 주의하십시오. 문자열을 정수, 클래스 개체 또는 부울 값과 연결하지 마십시오.
파이썬의 str()
메소드
두 번째 솔루션은 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()
함수는 모든 값을 각각의 문자열 값으로 변환합니다. 또한 예외 없이 문자열을 안전하게 연결할 수 있습니다.
파이썬의 형식화된 문자열
세 번째 방법은 형식이 지정된 문자열을 사용하는 것입니다. 형식화된 문자열은 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 수정: Python에서 'generator' 객체에 'next' 속성이 없습니다.
- AttributeError 해결: 'list' 객체 속성 'append'는 읽기 전용입니다.
- AttributeError 해결: Python에서 'Nonetype' 객체에 'Group' 속성이 없습니다.
- AttributeError: 'Dict' 객체에 Python의 'Append' 속성이 없습니다.
- AttributeError: 'NoneType' 객체에 Python의 'Text' 속성이 없습니다.
- AttributeError: Int 객체에 속성이 없습니다.