파이썬에서 입력받기
파이썬의 기본 입력 함수는 input()이다.
키보드로부터 입력받아 문자열(str)로 리턴한다.
숫자 값을 입력하였더라고 문자열로 반환되기 때문에 이 점을 항상 생각하며 사용해야 한다.
이와 같은 방식으로 input() 함수를 형변환 함수로 감싸주면 값이 형변환되어 저장된다.
여러 개 입력받기
input 함수는 한 번에 한 개의 값만을 입력받을 수 있다.
a b c를 입력하였더라도 a b c 가 하나의 문자열로 인식된다.
두 가지 방법을 이용해서 여러 문자열을 입력받아본다.
방법 1) split()
매개변수 없이 사용하는 split 함수는 공백을 기준으로 문자열을 자른다.
따라서 a b c로 입력했을 때 공백을 기준으로 a, b, c가 각각 잘려서 3개의 변수에 대입되었다.
split 함수에 매개변수를 주면 어떻게 될까
: 로 매개변수를 주었기 때문에 : 를 기준으로 입력한 문자열이 잘린 것을 확인할 수 있다.
int(input().split())과 같이 사용하면 TypeError가 발생한다.
input().split()의 결과가 list이기 때문이다.
그렇기 때문에 한 개의 값만 입력받을 때 input()을 형변환 함수로 감싸줬던 방법은 사용하지 못한다.
다른 형 타입의 변수로 사용하고 싶은 경우, 각각의 변수들마다 형변환을 일일이 해줘야 하는 게 번거롭다.
따라서 여러 개를 입력받을 때에는 map 함수를 사용하는 게 좀 더 편하다.
방법 2) map()
In [20]은 map 함수를 사용하지 않았을 때의 결과 값이다.
10 + 20 + 30 = 60인 결과 값을 얻어내고 싶었는데 a, b, c 세 변수 모두 string 타입이므로 덧셈 연산은 되지 않고 그냥 문자열이 합쳐진다.
In [25]에서 map 함수를 사용했다.
입력받은 3개의 값들이 모두 int형으로 형변환되어 저장된 것을 확인할 수 있다.