1 부터 시작하는 파이썬 - 7.5장 [입력 응용]

Sehyun_Kim·2023년 8월 10일
0
post-thumbnail

input( ) 응용 [ 조금 어려움 ]

split( ), map 사용

split( )

그냥 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함수를 사용해야 합니다.

map( )

a,b = map(int,input("숫자를 입력해주세요: ").split(","))
print(a+b)
결과>>
숫자를 입력해주세요: 1,2
3

위와 같이 map함수를 이용하여 list의 자료형을 한 번에 변환할 수 있습니다.


split( )

끝 내기전에 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에 저장 됩니다.


profile
Pandora's box [ πίθος ]

0개의 댓글