프로그래밍언어/파이썬[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)
이 코드는 문자열 count
를 int()
로 변환하여 곱셈이 가능해집니다. 결과는 ***
입니다.
● 자주 하는 실수
- 숫자 입력을 문자열로 받은 후 바로 연산
- 사용자 입력값을 타입 변환하지 않고 시퀀스와 곱함
- 리스트 곱셈 연산 시 곱하는 대상이 문자열일 경우
● 결론
TypeError - can't multiply sequence by non-int of type 'str'
오류는 시퀀스를 반복할 때 반드시 정수만을 곱할 수 있다는 파이썬의 엄격한 타입 규칙 때문입니다. 숫자 형태의 문자열을 곱셈에 사용하려면 int()
를 통해 명시적으로 정수형으로 변환하는 습관을 들이는 것이 중요하며, 사용자 입력이나 외부 데이터 사용 시 타입 검사를 반드시 병행해야 안전한 코드를 작성할 수 있습니다.
728x90