본문 바로가기
카테고리 없음

파이썬 여러 개 입력받기 - input 함수와 split 사용법

by chapter21 2025. 5. 12.
파이썬 여러 개 입력받기 - input 함수와 split 사용법
파이썬 여러 개 입력받기 - input 함수와 split 사용법

파이썬 여러 개 입력받기 - input 함수와 split 사용법

파이썬 프로그램은 사용자와 대화하듯 정보를 주고받을 수 있습니다. 지난 시간에는 사용자에게 정보를 받는 가장 기본적인 방법인 input() 함수를 배웠습니다.

input() 함수는 사용자가 입력한 한 줄의 텍스트를 읽어옵니다. 그런데 만약 사용자에게 이름과 나이처럼 여러 개의 정보를 한 번에 입력받고 싶다면 어떻게 해야 할까요?

이번 시간에는 사용자가 한 줄에 여러 개의 정보를 입력했을 때, 이 정보들을 각각 분리해서 사용하는 방법을 배워보겠습니다. 마치 한 그릇에 담긴 여러 가지 반찬을 젓가락으로 하나씩 집어 먹는 것과 같다고 생각하면 쉬울 것입니다. 이 방법을 알면 사용자의 다양한 입력에 맞춰 프로그램을 더욱 유연하게 만들 수 있습니다.

input 함수 복습 및 여러 개 입력의 필요성

input() 함수는 사용자로부터 한 줄의 입력을 받습니다. 사용자가 키보드로 글자를 입력하고 엔터키를 누르면, 그 내용 전체를 하나의 긴 문자열(글자 덩어리)로 가져옵니다. 예를 들어, 사용자가 "홍길동 20"이라고 입력했다면, 파이썬은 이 전체를 하나의 "홍길동 20"이라는 문자열로 인식합니다.
하지만 프로그램에서는 '홍길동'은 이름으로, '20'은 나이로 따로따로 사용하고 싶을 때가 많습니다. 이때 필요한 것이 바로 입력받은 하나의 문자열을 작은 조각들로 나누는 과정입니다.

입력받은 문자열 나누기: split() 사용하기

파이썬에서는 split()이라는 아주 유용한 기능을 제공합니다. 이 split()문자열을 특정 기준에 따라 나누어 줍니다. 별다른 기준을 정해주지 않으면, 기본적으로 '공백'을 기준으로 나눕니다. 이렇게 나누어진 조각들은 리스트라는 형태로 저장됩니다. 리스트는 여러 개의 값들을 순서대로 담아두는 '목록'이라고 생각하면 됩니다.

Python
# 사용자에게 이름과 도시를 공백으로 구분하여 입력받고 나누기 input_data = input("이름과 도시를 공백으로 구분하여 입력하세요: ") split_data = input_data.split() print("입력받은 전체 문자열:", input_data) print("split()으로 나눈 결과 (리스트):", split_data)

위 코드를 실행하고 "김철수 서울"이라고 입력하면 다음과 같은 결과가 화면에 나타납니다.

출력 결과
이름과 도시를 공백으로 구분하여 입력하세요: 김철수 서울 입력받은 전체 문자열: 김철수 서울 split()으로 나눈 결과 (리스트): ['김철수', '서울']

split() 함수를 사용하면 입력받은 문자열이 공백을 기준으로 '김철수''서울'이라는 두 개의 작은 문자열로 나누어져 리스트 안에 담긴 것을 볼 수 있습니다.

나눈 값들을 각각 다른 변수에 저장하기

split()의 결과는 리스트 형태입니다. 이 리스트에 담긴 값들을 각각 이름, 도시와 같이 의미 있는 이름을 가진 '변수'에 저장하면 나중에 프로그램을 만들 때 편리하게 사용할 수 있습니다. 파이썬에서는 변수1, 변수2 = ... 와 같이 여러 변수에 동시에 값을 저장하는 기능도 지원합니다.

Python
# 이름과 도시를 입력받아 각각 name과 city 변수에 저장 name, city = input("이름과 도시를 공백으로 구분하여 입력하세요: ").split() print("이름:", name) print("도시:", city)

위 코드를 실행하고 "박영희 부산"이라고 입력하면 다음과 같은 결과가 화면에 나타납니다.

출력 결과
이름과 도시를 공백으로 구분하여 입력하세요: 박영희 부산 이름: 박영희 도시: 부산

이제 input().split()의 결과인 리스트에 담긴 값들이 순서대로 namecity라는 변수에 저장된 것을 볼 수 있습니다. 이렇게 하면 각 값을 개별적으로 활용할 수 있게 됩니다.

나눈 값들을 숫자로 바꾸어 사용하기: map() 사용하기

사용자에게 나이나 점수처럼 '숫자' 정보를 입력받는 경우도 많습니다. 하지만 input()으로 받은 값은 문자열 형태입니다. "20"이라는 문자열과 숫자 20은 파이썬에게는 다른 종류의 값입니다. 만약 입력받은 나이로 계산을 하거나 크기를 비교하고 싶다면, 문자열 형태의 숫자를 실제 숫자 값의 종류(데이터 타입)로 바꾸어 주어야 합니다.

이럴 때 map() 함수와 int() 또는 float() 함수를 함께 사용합니다. map(함수, 리스트)리스트의 모든 요소에 함수를 적용해주는 역할을 합니다. 즉, map(int, input().split())split()으로 나눈 모든 문자열 조각을 숫자로 바꾸어 줍니다.

Python
# 두 숫자를 공백으로 구분하여 입력받고 숫자로 변환하기 num1, num2 = map(int, input("두 숫자를 공백으로 구분하여 입력하세요: ").split()) # 변환된 숫자를 더해보기 result = num1 + num2 print("입력받은 첫 번째 숫자:", num1, type(num1)) print("입력받은 두 번째 숫자:", num2, type(num2)) print("두 숫자의 합:", result)

위 코드를 실행하고 "10 25"라고 입력하면 다음과 같은 결과가 화면에 나타납니다.

출력 결과
두 숫자를 공백으로 구분하여 입력하세요: 10 25 입력받은 첫 번째 숫자: 10 <class 'int'> 입력받은 두 번째 숫자: 25 <class 'int'> 두 숫자의 합: 35

결과를 보면 num1num2가 실제 숫자 값의 종류(int, 정수)로 변환되어 덧셈 계산이 제대로 수행된 것을 확인할 수 있습니다.

핵심 : input().split()은 입력받은 한 줄을 공백 기준으로 나누어 리스트로 만듭니다. 여기에 map(int, ...) 등을 붙여 숫자 값의 종류로 변환할 수 있습니다.

주의:

input().split()으로 나눈 개수와 저장하려는 변수의 개수가 맞아야 합니다. 만약 입력 개수와 변수 개수가 다르면 오류가 발생합니다.

마무리 요약

이번 시간에는 파이썬에서 사용자의 입력을 여러 개로 나누어 처리하는 방법을 배웠습니다. input().split()을 통해 입력받은 문자열을 공백 기준으로 리스트로 만들고, 필요하다면 map() 함수를 사용하여 숫자 값의 종류로 변환하여 변수에 저장하는 과정까지 살펴보았습니다. 이제 사용자의 여러 입력을 받아 프로그램에서 각기 다르게 처리할 수 있게 되었습니다.
다음 강의에서는 상황에 따라 다른 코드를 실행하는 '조건문'에 대해 배워보겠습니다.

질문이 있다면 댓글에 남겨주세요.

다음 강의에서는 상황에 따라 다르게 실행하는 조건문을 배워 봅니다.