본문 바로가기
python

[python] 파이썬 사용자 입력받기 (input 함수 사용법)

by hong0 2021. 2. 13.
반응형

python의 사용자 입력받기 (input 함수, 자료형 별 입력 받기)

python project 시작 시 기본이 되는 사용자 입력을 받는 방법을 정리한다.

 

기본적으로 아래와 같이 input 함수를 사용하여 받을 수 있다.

val = input()
print(val)

사용자 입력 시 아래와 같이 문구를 넣어 출력할 수 있다.

val = input("입력값: ")
print(val)

 

이제 각 자료형 별 입력을 받는 방법을 알아보자.

 

기본적으로 input은 string 형태로 입력을 받는다.

val = input("input string val: ")
print("type1: " + str(type(val)))

실행결과

input string val: abc
type1: <class 'str'>

integer형으로의 변환은 int()를 사용한다.

# val2 = input("input integer val: ")
# val2 = int(val2)
val2 = int(input("input integer val: "))
print("type2: " + str(type(val2)))

실행결과

input integer val: 123
type2: <class 'int'>

 

float형으로의 변환은 float()를 사용한다.

# val3 = input("input float val: ")
# val3 = float(val3)
val3 = float(input("input float val: "))
print("type3: " + str(type(val3)))

실행결과

input float val: -1
type3: <class 'float'>

 

두개의 입력을 한번에 받으려면 split()을 사용한다.

아래와 같이 변수 두개를 콤마(,)로 선언하여 받을 수 있으며, 사용자 입력 시 에는 띄어쓰기(스페이스)로 data를 구분하여 받는다. 이를 원하는 data 형태로 형변환 하여 사용할 수 있다.

val4, val5 = input("input integer & float val: ").split()
val4 = int(val4)
val5 = float(val5)
print("type4: " + str(type(val4)))
print("type5: " + str(type(val5)))

실행결과

input integer & float val: 123 -1
type4: <class 'int'>
type5: <class 'float'>

 

다음은 eval()을 이용하여 tuple 형태의 data를 입력받는다. 

eval()을 이용하여 int, float형태의 data도 전달 받을 수 있지만 아래와 같이 (1,2)와 같은 형태의 tuple도 전달 받을 수 있음을 보여준다.

    # val6 = input("input eval (tuple) val: ")
    # val6 = eval(val3)
    val6 = eval(input("input eval (tuple) val: "))
    print("type6: " + str(type(val6)))

실행결과

input eval (tuple) val: (1,2)
type6: <class 'tuple'>

 

이번엔 eval()을 이용하여 list 형태의 data를 입력받는다. 

list의 data 형태인 [1,2,3]을 입력받아본다.

    # val7 = input("input eval (list) val: ")
    # val7 = eval(val5)
    val7 = eval(input("input eval (list) val: "))
    print("type7: " + str(type(val7)))

실행결과

input eval (list) val: [1,2,3]
type7: <class 'list'>

 

전체 코드와 실행결과는 아래와 같다.

def inputTest():

    print("input test")

    # ex) abc
    val = input("input string val: ")
    print("type1: " + str(type(val)))

    # ex) 123
    # val2 = input("input integer val: ")
    # val2 = int(val2)
    val2 = int(input("input integer val: "))
    print("type2: " + str(type(val2)))

    # ex) -1
    # val3 = input("input float val: ")
    # val3 = float(val3)
    val3 = float(input("input float val: "))
    print("type3: " + str(type(val3)))

    # # ex) abc / 123 / -1
    val4, val5 = input("input integer & float val: ").split()
    val4 = int(val4)
    val5 = float(val5)
    print("type4: " + str(type(val4)))
    print("type5: " + str(type(val5)))

    # # ex) (1,2) 
    # val6 = input("input eval (tuple) val: ")
    # val6 = eval(val3)
    val6 = eval(input("input eval (tuple) val: "))
    print("type6: " + str(type(val6)))

    # # ex) [1,2,3]
    # val7 = input("input eval (list) val: ")
    # val7 = eval(val5)
    val7 = eval(input("input eval (list) val: "))
    print("type7: " + str(type(val7)))


inputTest()

실행결과

input test
input string val: abc
type1: <class 'str'>
input integer val: 123
type2: <class 'int'>
input float val: -1
type3: <class 'float'>
input integer & float val: 123 -1
type4: <class 'int'>
type5: <class 'float'>
input eval (tuple) val: (1,2)
type6: <class 'tuple'>
input eval (list) val: [1,2,3]
type7: <class 'list'>

 

반응형

댓글