문자열을 예쁘게 나눠서 리스트로 만들 때 가장 많이 사용하는 함수이다. split() 괄호 안에 아무것도 넣지 않으면 공백(띄어쓰기, 탭 등)을 기준으로 문자열을 나누고, 만약 특정 문자가 들어가 있다면 해당 문자를 기준으로 나눈다. 나누어진 값은 리스트의 요소로 저장된다.
input 한 번에 값을 여러 개 입력받으려면 input에서 split을 사용한 뒤 여러 개의 변수에 저장해주면 됩니다(각 변수는 콤마로 구분해줍니다).
변수1, 변수2 = input().split()
변수1, 변수2 = input().split(기준문자)
변수1, 변수2 = input(문자열).split()
변수1, 변수2 = input(문자열).split(기준문자)
a, b = input('문자열 두 개를 입력하세요: ').split() # 입력받은 값을 공백을 기준으로 분리
print(a)
print(b)
# 결과
문자열 두 개를 입력하세요: Hello Python (입력)
Hello
Python
input에 split을 사용하면 입력받은 값을 공백을 기준으로 분리하여 변수에 차례대로 저장합니다(split은 분리하다, 나누다라는 뜻입니다). 여기서는 문자열 'Hello Python'을 공백을 기준으로 분리하여 'Hello'는 첫 번째 변수 a에 'Python'은 두 번째 변수 b에 저장합니다.
# ↓ 'Hello'가 저장됨
a , b = input('문자열 두 개를 입력하세요: ').split()
# ↑ 'Python'이 저장됨
그럼 숫자 두 개는어떻게 입력받는지?
input().split()으로 입력받은 값은 문자열 상태이므로 int를 사용하여 정수로 변환해주어야 합니다.
a, b = input('숫자 두 개를 입력하세요: ').split() # 입력받은 값을 공백을 기준으로 분리
a = int(a) # 변수를 정수로 변환한 뒤 다시 저장
b = int(b) # 변수를 정수로 변환한 뒤 다시 저장
print(a + b)
#결과
숫자 두 개를 입력하세요: 30 40 (입력)
70
입력받는 부분과 int로 변환하는 부분이 한 줄로 줄었습니다. 이렇게 input().split()을 사용할 때 map을 사용하면 코드를 짧게 줄일 수 있습니다.
a, b = map(int, input('숫자 두 개를 입력하세요: ').split(',')) # 입력받은 값을 콤마를 기준으로 분리
print(a + b)
# 결과
숫자 두 개를 입력하세요: 30,40 (입력)
70
split(',')과 같이 분리할 기준 문자를 콤마로 지정하였으므로 '30,40'에서 30은 a, 40은 b에 저장됩니다.
지금까지 사용자가 입력한 값을 처리해보았습니다. 여기서는 input과 split의 결과가 문자열이라는 점이 중요합니다. 따라서 숫자 계산을 한다면 int, float를 사용해서 결과를 숫자로 변환해주어야 합니다.
또는 split의 결과를 모두 int, float로 변환할 때는 map을 사용하면 편리합니다.