본문 바로가기

study/파이썬

[python] 입력값 받기, 한 번에 여러 입력값 받기

입력값 받기

>>> a = input()
hello, word!
>>> print(a)
hello, word!
>>> b = input("숫자를 입력:")
숫자를 입력:12345555
>>> print(b)
12345555
>>> c = input('입력하시오: ')
입력하시오: hiiiiiii
>>> print(c)
hiiiiiii

*큰따옴표(" ") 대신 작은따옴표(' '), 작은따옴표 세쌍(''' '''), 큰따옴표 세쌍(""" """") 사용 가능

단, input()으로만 받은 입력값은 숫자, 문자 구분없이 문자열로 취급한다.

 

입력값을 숫자로 받기

>>> x = int(input('number: '))
number: 123456
>>> print(x)
123456

문자열이 아닌 숫자로 입력값을 받고 싶다면 int(), float() 등의 함수를 사용

 

한 번에 여러 입력값 받기

>>> ex1, ex2 = input('입력:').split()
입력:안녕 77777
>>> print("ex1:",ex1,"\nex2:",ex2)
ex1: 안녕 
ex2: 77777

split() 함수는 받을 값을 구분하기 위해 사용

(split()으로만 쓰면 공백으로 입력값 구분, ',' 또는 '\n' 등 사용 가능)

input()함수는 기본적으로 입력값을 문자열로 취급하기 때문에, input()함수만을 사용하면 따로 형변환 함수를 사용해줘야 한다.

>>> ex1, ex2 = input().split()
1111111 22222222
>>> result = ex1 + ex2
>>> print(result)
111111122222222

숫자를 입력한 두 변수를 더해봄으로써 두 값이 문자열로 취급 되었음을 알 수 있다.

이 값들을 int() 또는 float() 함수 등을 사용해 형태 변환을 시켜주면 숫자로 더할 수 있다.

>>> ex1, ex2 = input().split()
1111111 22222222
>>> ex1=int(ex1)
>>> ex2=int(ex2)
>>> print(ex1+ex2)
23333333

 

추가적인 데이터 형변환 없이 여러 입력값 받기

map()함수를 사용해서 입력받는 값에 데이터 타입을 맵핑한다.

map() 함수의 첫번째 인자값에 값의 데이터 타입, 두번째 인자값에 input().split() 사용

>>> a, b = map(int, input().split())
111111 222222
>>> print(a)
111111
>>> print(b)
222222

입력값을 콤마(,)로 구분할 때는 아래와 같다.

>>> x, y = map(str, input().split(','))
hello, world!
>>> print(x)
hello
>>> print(y)
 world!