split( ), map 사용
그냥 input( )을 사용하면 한줄에 하나씩의 변수만 입력받을수 있었습니다.
만약, 한줄로 각각 다른 여러개의 변수를 입력받기 위해서는 어떻게 해야할까요?
a,b = input("숫자를 입력해주세요: ").split()
print(a+b)
결과>>
숫자를 입력해주세요: 1 2
12
split( )함수는 괄호안에 있는 문자를 기준으로 나누는 기능을 합니다.
위에서는 괄호안에 아무것도 넣지 않았으니 공백(스페이스바를 누를때)을 기준으로 나누게 됩니다.
a,b=input("숫자를 입력해주세요: ").split(",")
print(a+b)
결과>>
숫자를 입력해주세요: 1,2
12
이또한 str(문자열)로 인식되어 1+2의 값인 3이 아니라 '1'+'2'의 값인 12로 출력되었습니다.
a,b=int(input("숫자를 입력해주세요: ").split(","))
print(a+b)
결과>> 오류!
split( )는 리스트를 이용하여 저장되기 때문에 자료형을 바꿔주려면 map함수를 사용해야 합니다.
a,b = map(int,input("숫자를 입력해주세요: ").split(","))
print(a+b)
결과>>
숫자를 입력해주세요: 1,2
3
위와 같이 map함수를 이용하여 list의 자료형을 한 번에 변환할 수 있습니다.
끝 내기전에 split( )에 대하여 아주 잠깐 더 알아보도록 하겠습니다.
split( )은 입력받을 때뿐만 아니라 기존 변수에 저장 되어있던 문장도 split( )을 이용하여 나누어 저장할 수 있습니다.
a="0 부터 안시작하는 파이썬"
b=a.split('안')
print(b)
print(b[0])
print(b[1])
결과>> ['0 부터 ', ' 시작하는 파이썬']
0 부터
시작하는 파이썬
a변수에 저장되어있는 문장을 '안'을 기준으로 나누어 저장한 코드입니다.
2개의 list로 저장되기 때문에 b를 출력하면 2개의 문장이 나누어 나오는걸 볼수있습니다.
이때 가장앞의 문장은 b[0]이며, b[1], b[2], b[3] ... 순으로 list에 저장 됩니다.