반응형
두 개의 정수값을 입력받으려고 input(""). split()으로 문자열을 받고 이 것을 int()로 묶어서 형변환을 시키려 했더니
num, num2 = int(input("").split())
>> 2 10
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
타입에러가 발생한다. 해석해 보니 <정수 인수는 'list'가 아닌 문자열, 바이트와 같은 개체 또는 숫자여야 합니다>라고 한다. 그 말인즉슨 input("").split()으로 입력한 문자를 나눈 순간 각각의 문자열로 적용되는 것이 아닌 리스트에 담긴다는 의미이다.
해결 방법으로는 2가지가 있는데 첫번째로 문자열로 입력받고 하나씩 형변환 시키는 방법
num, num2 = input("").split()
num = int(num)
num2 = int(num2)
print(num, num2)
>> 2 10
2 10
두 번째로 map() 함수를 이용하는 방법이 있다.
num, num2 = map(int, input("").split())
print(num, num2)
>> 2 10
2 10
첫번째 방법 같은 경우는 입력받을 변수가 많아지면 하나씩 일일이 형변환을 해줘야 하기 때문에 사용하기 불편하다.
이러한 이유 때문에 map() 함수를 이용하는 것을 추천한다.
map() 함수에 관한 자세한 내용은 아래 링크 참고
https://itstoryy.tistory.com/14
반응형
'파이썬 > 에러' 카테고리의 다른 글
[파이썬] TypeError: list indices must be integers or slices, not str (0) | 2024.04.04 |
---|---|
[파이썬] TypeError : unsupported operand type(s) for (0) | 2023.01.22 |