본문 바로가기
프로그래밍 및 개발/Python

[python] 입력값 받기 (input, split, map)

by typenine9 2022. 11. 5.
300x250

 

 

요즘 백준 사이트에서 알고리즘 문제를 자주 풀고 있다.

풀다보니 입력값 받아 처리하는 경우가 잦았다.

 

매일같이 푸는 문제가 아니라 할 때마다

입력 방법을 검색하고 진행했는데 이참에 정리하면서 공부하고자 글을 작성하게 됐다.

 

 

 

1. 입력값 받기 (문자형)

 

a= input()

 

입력값 받기 위한 함수는 input() 이다.

위의 방법이 가장 기본형이고 값은 문자열로 저장된다.

 

a= input()

print(a)

>>>Hello World!
Hello World!

 

 

 

2. 입력값 받기 (숫자형)


input() 함수의 기본 입력값이 문자형이라

숫자형 입력이 필요할 때는 형변환을 해야한다.

 

a = int(input())

print(a)

>>>3
3

 

형변환은 input() 함수에 int를 덮어주면 된다.

 

 


3. 여러개 입력값 받기 (문자형) 

 

입력값이 하나가 아닌 여러 개를 받아야 할 경우

input 함수에 split함수를 더해줘서 한 번에 받은 입력값을 여러 개로 나누어준다. 

(split은 공백을 기준으로 값을 분리하는 역할을 한다)

 

a,b = input().split()

print (a)
print (b)
print (a,b)

>>>Hello World!
Hello
World!
Hello World!

 

(입력값 구분은 띄어쓰기로)

 

 

 

4. 여러개 입력값 받기 (숫자형) 

 

2번과 동일하게 input에 int를 씌어주면 되는줄 알았지만 

이렇게 진행할 시 TypeError 오류가 발생한다.

 

 

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    a,b = int(input().split())
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'

 

적혀 있는걸 봤을 때 이렇게 쓰면 '문자열'이 아닌 값형태로 인식되는거 같다.

 

그래서 다른 방법으로 map과 list를 이용해 입력했다.  

 

l = list(map(int, input().split())) 

print(l)

>>>1 2 3
[1,2,3]


여러개 입력받은 값을 map으로 단번에 int형 변환해서
리스트에 저장한 코드다.


*map : 리스트의 요소를 지정된 함수로 처리해주는 함수
보통 여러 개의 데이터를 한 번에 다른 형태로 바꾸기 위해 사용

 

 

<