-
[Python] int(input().split()) 가 안되는 이유언어/Python 2024. 4. 16. 15:45
설명에 앞서 우선 문제를 내보겠습니다.
꼭 먼저 풀어보시길 바랍니다.
''' a와 b를 한줄에 공백으로 입력받아 두 수를 더하시오 ''' 입력 예시 1 3 출력 예시 4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
풀어보셨나요?
네 사실 너무 쉽다고 생각하실 수도 있습니다. 여러 가지 답변이 있을 수 있겠지만.
우선, 제 풀이 2가지 먼저 보여드리겠습니다.
# 풀이 1 a,b = map(int,input().split()) # 사용자로부터 공백을 기준으로 두 수를 입력을 받는다. print(a+b) # 두 수를 더한 값을 출력한다. # 풀이 2 a,b = input().split() print(int(a) + int(b))
왜 안되는 지 이유에 대해서 먼저 말씀드리겠습니다.
int() 함수는 하나의 값을 입력으로 받아 정수로 변환하기 때문입니다.
a, b = int(input().split())
먼저 컴퓨터는
input() 처리하고split() 처리하면
이 값들은 list 형태로 저장되어 있습니다. 아래 사진처럼 말이죠.
int() 함수는 리스트와 같은 iterable 객체를 직접 변환할 수 없기 때문에 오류가 발생합니다.
따라서 map()함수를 사용하여 리스트의 각 요소에 대해 변환을 적용해야 합니다. 이렇게 하면 각 요소를 개별적으로 처리할 수 있어 오류가 발생하지 않습니다.
++ 여기서부터는 본문과 상관 없습니다.
모를 법한 문제 더 알고 가요 ~~~
iterable 객체란?
여러 개의 값을 가지고 있는 객체이며, 이 값들을 순회하면서 하나씩 가져올 수 있는 객체를 말합니다. 파이썬에서는 리스트(list), 튜플(tuple), 세트(set), 문자열(string), 딕셔너리(dictionary) 등이 대표적인 iterable 객체입니다.
iterable 객체의 특징
- 순회 가능: 각 요소를 순서대로 접근할 수 있습니다.
- 반복 가능: for 루프에서 사용할 수 있습니다.
- 인덱싱 가능: 요소에 인덱스를 사용하여 접근할 수 있습니다.
예를 들어, 리스트 [1, 2, 3]는 iterable 객체입니다. 이 리스트의 각 요소는 순서가 있고, 반복문을 통해 순회할 수 있습니다. 또한 인덱스를 사용하여 요소에 접근할 수 있습니다.
파이썬에서는 iterable 객체에 대해 iter() 함수를 사용하여 이터레이터(iterator)를 생성할 수 있습니다. 이터레이터는 next() 함수를 사용하여 값을 하나씩 가져올 수 있습니다.
'언어 > Python' 카테고리의 다른 글
왜 Python에서 `str`타입이 append 메소드를 지원하지 않을까? (0) 2024.05.28 [Python] 당신의 for문에서 map()이 안되는 이유 (0) 2024.04.22 [Python] List Comprehensions이란? (0) 2024.04.22 [Python] 유니코드란? & 활용한 문제 예시(feat.CodeUp : 6,069 평가 입력 받아 다르게 출력하기(py)) (0) 2024.04.17 [Python] print(a and b) 와 print(a & b) 차이 (0) 2024.04.16