[파이썬] 사용자입력받기 / 문자열 나누기(split())
코딩테스트 문제를 풀다보면 사용자 입력이 공백으로 구분되어 있는 경우가 있다. 이 경우에 input()을 통해 한 줄씩 불러올 수 있다. 이 경우 문자열로 사용자 입력을 받게 된다.
>>> x = input()
kidev
>>> x
'kidev'
>>> y=input()
12345
>>> y
'12345'
파이썬 커맨드 창에 맨 윗줄과 같이 x = input() 과 같이 입력하면 사용자가 입력을 할 때까지 기다렸다가, 입력을 하고 나면 x에 사용자 입력값을 문자열로 담게 된다. 혹시 변수가 창에 보여질 때 필요한 양식이 있다면 input('표시할 문장') 과 같이 쓸 수 있다.
z 값을 입력 받기 위해 사용자 입력을 받을 때 'z : ' 이 보여지게 했다.
>>> z = input('z : ')
z : 28901
>>> z
'28901'
사용자 입력받기(공백으로 구분되어진 숫자)
'12 23 34 45' 와 같은 사용자 입력이 있다고 하자. 각자 이것들을 a, b, c, d 에 정수로 저장하고 싶다면 split() 함수와 map() 함수를 이용하면 간편하게 할 수 있다. split() 함수는 전해받은 첫번째 문자열을 바탕으로 문자열을 구분하여 각각을 요소로 하는 리스트를 반환한다.
split()의 변수에 아무것도 설정하지 않으면 공백을 기준으로 문자열을 나눈다.
'2' 를 기준으로 문자열을 나누면 앞에 있는 '1' 과 '2' 사이에 있는 공백, 그리고 그 뒤의 문자열로 나뉘어 나타나게 된다.
>>> ex = '12 23 34 45'
>>> ex.split()
['12', '23', '34', '45']
>>> ex.split('2')
['1', ' ', '3 34 45']
여기서 문자열 리스트의 각각의 원소를 정수로 바꿔주어야 한다. 각각의 원소에 int 함수를 적용시키면 된다.
for 문을 통해 바꿔보았다.
j = ex.split()
>>> for i in range(len(j)):
... j[i] = int(j[i])
...
>>> j
[12, 23, 34, 45]
map 함수를 이용하면 더욱 간단하게 이를 바꿀 수 있다.
input() 으로 사용자 입력을 받아 이를 바로 int 함수로 정수로 바꾸어서 a, b, c, d 에 저장하는 모습이다.
>>> a, b, c, d = map(int, input().split())
12 23 34 45
>>> a
12
>>> b
23
>>> c
34
>>> d
45
2024.02.14 - [프로그래밍 언어/파이썬] - [파이썬] 람다 lambda 함수 / map 함수
[파이썬] 람다 lambda 함수 / map 함수
람다 함수는 함수 선언 없이 그 자리에서 함수를 사용할 수 있게 해준다. def plus1(x): return x+1 위와 같은 함수를 다음과 같이 선언 해주기만 하면 된다. lambda x:x+1 즉, lambda 변수 : 식 과 같이 사용하
ki-dev.tistory.com