프로그래밍언어/파이썬[Error]

[파이썬][Error] 025. TypeError - can't multiply sequence by non-int of type 'str'

about_IT 2025. 5. 27. 21:04
728x90

TypeError: can't multiply sequence by non-int of type 'str' 오류는 문자열이나 리스트와 같은 시퀀스(sequence) 객체를 숫자가 아닌 문자열로 곱하려고 했을 때 발생합니다. 파이썬에서는 시퀀스를 정수와 곱하면 반복되는 구조를 생성할 수 있지만, 곱하는 값이 정수가 아닌 경우에는 지원하지 않기 때문에 이 오류가 발생합니다.

예를 들어, "a" * 3"aaa"가 되지만, "a" * "3"과 같이 문자열을 곱하려고 하면 타입이 맞지 않아서 오류가 발생합니다.

● 오류 발생 예시

text = "*"
count = "3"
result = text * count

위 코드는 count가 문자열 타입이기 때문에 곱셈이 불가능하여 오류가 발생합니다.

TypeError: can't multiply sequence by non-int of type 'str'

● 해결 방법

  • int() 함수를 사용해 문자열을 정수로 변환
  • 입력받은 숫자가 문자열이라면 숫자형으로 형변환 후 사용
  • 정수인지 타입 확인 후 연산 수행

● 올바른 코드 예시

text = "*"
count = "3"
result = text * int(count)
print(result)

이 코드는 문자열 countint()로 변환하여 곱셈이 가능해집니다. 결과는 ***입니다.

● 자주 하는 실수

  • 숫자 입력을 문자열로 받은 후 바로 연산
  • 사용자 입력값을 타입 변환하지 않고 시퀀스와 곱함
  • 리스트 곱셈 연산 시 곱하는 대상이 문자열일 경우

● 결론

TypeError - can't multiply sequence by non-int of type 'str' 오류는 시퀀스를 반복할 때 반드시 정수만을 곱할 수 있다는 파이썬의 엄격한 타입 규칙 때문입니다. 숫자 형태의 문자열을 곱셈에 사용하려면 int()를 통해 명시적으로 정수형으로 변환하는 습관을 들이는 것이 중요하며, 사용자 입력이나 외부 데이터 사용 시 타입 검사를 반드시 병행해야 안전한 코드를 작성할 수 있습니다.

728x90