파이썬 입력 값 다양하게 받기
https://hkim-data.tistory.com/32
Python 입력 값 다양하게 받기 (input, map, split)
by 데이터현 2021. 10. 19.
데이터현님이 정리해 놓은 내용을 스크랩한 자료입니다.
----------------------------------------------------
Python에서는 input() 메서드를 통해 입력값을 다양하게 받을 수 있다. (보통 실행 창에서 직접 입력함)
하나씩 알아보자.
1. 문자열 입력
단순하게 input 만을 사용하면 문자열을 입력받게 된다.
a = input()
type(a)
print(a)


2. 숫자 입력받기
python 내장 함수인 int()를 활용해서 input 값을 형 변환시켜줘서 숫자를 입력받을 수 있다.
a = int(input())
print(type(a))
print(a)


3. split 활용 쪼개서 입력받기
python에는 split 이라는 함수를 제공한다.
간단하게 알아보면 문자열.split(분류조건, 나눌횟수)를 통해 리스트로 return 한다.
split의 파라미터를 기본으로 하면 공백(띄어쓰기 탭 등등)을 기반으로 분리하여 return 한다.
예시 코드를 보면 이해가 잘 된다.
str = 'Sunday Morning!'
print(str.split())

이 split 함수를 이용해서 입력값을 공백을 기준으로 분리하여 입력 받을 수 있다.
str_list = input().split()
print(type(str_list))
print(str_list)

또한 각각을 아래와 같이 나누어 받을 수 있다.
a, b = input().split()
print(a)
print(b)

4. map 활용 숫자 쪼개서 입력받기.
split과 map 함수를 활용해서 숫자를 다중 입력받을 수 있다.
map 함수는 map(적용할 함수, 적용할 값)으로 활용할 수 있다.
예를 들어,
str_list = ['1', '2']
a, b = map(int,str_list)
print(type(a),type(b))
print(a,b)
문자 '1'과 문자 '2'으로 이루어진 list 가 있을 때,
각각의 값에 대해서 int 함수를 적용하여 a , b로 받게 되면

이를 활용해서 입력값이 여러 숫자일 경우
이를 공백을 기준으로 나누고, map 함수를 통해 쪼개 받을 수 있다.
a, b, c = map(int, input().split())
print(type(a),type(b),type(c))
print(a,b,c)

또한 하나의 리스트로 형 변환된 값을 받는 것도 가능하다.
num_list = list(map(int, input().split()))
print(type(num_list))
print(num_list)

5. 빠른 입력받기
코딩 테스트를 풀다 보면, 빠른 입력이 효율성에서 성공과 실패를 결정하는 경우가 있다.
그런 경우에는 sys 모듈을 불러와서 빠른 입력을 받을 수 있다.
# 빠른 입력 받기
import sys
data = sys.stdin.readline().rstrip()
print(data)

readline( ) 이후에 rstrip을 해주는 이유는
sys.stdin.readline( )의 경우에 마지막에 개행 문자가 들어가게 되는데
이를 제거하기 위함이다.
감사합니다.