TypeError: must be str, not int

Vaibhav Vaibhav 2023년6월21일
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가 있고 문자열 내부에 여러 {}이 있는지 확인합니다.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

관련 문장 - Python Error