파이썬 숫자 분리 - paisseon susja bunli

Python에서는 input() 메서드를 통해 입력값을 다양하게 받을 수 있다. (보통 실행 창에서 직접 입력함)

하나씩 알아보자.

1. 문자열 입력

단순하게 input 만을 사용하면 문자열을 입력받게 된다.

a = input()
type(a)
print(a)
파이썬 숫자 분리 - paisseon susja bunli
실행 결과
파이썬 숫자 분리 - paisseon susja bunli
숫자를 입력해도 '1234'의 문자열로 받음.

2. 숫자 입력받기

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

a = int(input())
print(type(a))
print(a)
파이썬 숫자 분리 - paisseon susja bunli
int 형변환
파이썬 숫자 분리 - paisseon susja bunli
위의 경우에는 abcd를 int 형변환 할 수 없기에 에러 메시지가 출력된다.

3. split 활용 쪼개서 입력받기

python에는 split 이라는 함수를 제공한다.

간단하게 알아보면 문자열.split(분류조건, 나눌횟수)를 통해 리스트로 return 한다.

split의 파라미터를 기본으로 하면 공백(띄어쓰기 탭 등등)을 기반으로 분리하여 return 한다.

예시 코드를 보면 이해가 잘 된다.

str = 'Sunday Morning!'
print(str.split())
파이썬 숫자 분리 - paisseon susja bunli
공백을 기준으로 분리 된 모습

split 함수를 이용해서 입력값을 공백을 기준으로 분리하여 입력 받을 수 있다.

str_list = input().split()
print(type(str_list))
print(str_list)
파이썬 숫자 분리 - paisseon susja bunli

또한 각각을 아래와 같이 나누어 받을 수 있다.

a, b = input().split()
print(a)
print(b)
파이썬 숫자 분리 - paisseon susja bunli

4. map 활용 숫자 쪼개서 입력받기.

splitmap 함수를 활용해서 숫자를 다중 입력받을 수 있다.

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로 받게 되면

파이썬 숫자 분리 - paisseon susja bunli
int 형태로 형 변환 되어 나오게 된다.

이를 활용해서 입력값이 여러 숫자일 경우

이를 공백을 기준으로 나누고, map 함수를 통해 쪼개 받을 수 있다.

a, b, c = map(int, input().split())
print(type(a),type(b),type(c))
print(a,b,c)
파이썬 숫자 분리 - paisseon susja bunli

또한 하나의 리스트로 형 변환된 값을 받는 것도 가능하다.

num_list = list(map(int, input().split()))
print(type(num_list))
print(num_list)
파이썬 숫자 분리 - paisseon susja bunli

5. 빠른 입력받기

코딩 테스트를 풀다 보면, 빠른 입력이 효율성에서 성공과 실패를 결정하는 경우가 있다.

그런 경우에는 sys 모듈을 불러와서 빠른 입력을 받을 수 있다.

# 빠른 입력 받기
import sys
data = sys.stdin.readline().rstrip()
print(data)
파이썬 숫자 분리 - paisseon susja bunli

readline( ) 이후에 rstrip을 해주는 이유는

sys.stdin.readline( )의 경우에 마지막에 개행 문자가 들어가게 되는데

이를 제거하기 위함이다.

감사합니다.