[Python] 단일 값, 다중 값 입력받기 (input)

    Input 함수

    파이썬에서는 단 하나 input이라는 메소드를 호출함으로써 값의 입력을 받는 단계를 모두 끝낼 수 있다. 자바에서 사용하는 Scanner도 복잡한 것은 아니지만 이렇게 쉽게 만드는 것은 어떨까라는 아쉬움이 있다. 사실 가장 큰 이유는 Python은 변수를 특정 타입으로 선언할 필요가 없어서 모든 처리들이 심플해진다.

     

    파이썬 단일, 다중값 입력받기

     

    변수 = input("메세지...")

    위와 같이 input 이후 메세지를 입력하면, 메세지가 나오고 값을 입력 받을 수 있다. 그리고 그 값은 변수에 저장이 되는데 저 라인이 다이다. 예시를 좀 더 가시적으로 확인해보기 위해서 jupyter에서 실행한 화면을 올려보도록 한다. (소스 코드는 포스팅 하단)

     

    Input 예제 (구구단 출력)

    input으로 name과 구구단의 단을 입력받는 예제

    위 내용은 input으로 우선 사용자의 이름을 입력 받고, name이라는 변수에 저장한다. 그리고 출력하고 싶은 구구단의 단을 입력 받고, 이를 dan이라는 변수에 저장하는데 이때, 숫자를 입력해도 기본적으로 문자라고 인식되기에 int로 input을 감싸서 형변환을 수행한다.

     

    name = input("이름을 입력해 주세요.")
    dan = int(input("출력하고 싶은 구구단의 단을 입력해 주세요."))
    for i in range(1, 10):
        print(name, "님 ", dan, " 곱하기 ", i, " 는 ", dan*i)

     

    그 이후 for문으로 1~9을 차례대로 반복하며 지정한 단수와 곱한 값을 출력하는 예제이다. input이 어떻다라는 것은 더이상 설명할 필요는 없을 것 같다. 그렇다면 다중 값을 입력받고 싶을 때 어떻게 해야 될 것인가?

     

     

    input 다중값 처리

    사실 다중값을 처리하는 방법은 매우 다양하다. input에서 값을 받고 나중에 입력 받은 값을 split등의 라이브러리를 활용하여 처리할 수도 있고, 문자열을 자르는 등의 방식을 써서 처리하는 방법들이 있다. 여기서는 split을 한 후 2개의 값을 변수에 저장해 보도록 한다.

     

    다중 값을 입력받은 예제

    dan1, dan2 = map(int, input("한번에 출력하고 싶은 구구단의 단을 2개 입력해주세요.").split())

     

    input 값으로 위 예시에서는 "2 5"를 입력하였고 이 값을 split 메소드를 호출하여 분리 후 각각 dan1과 dan2에 저장한다. 이때 map() 함수는 지정된 형으로 변환하여 각각 변수에 저장하는 역할을 수행한다. 최종적으로는 이를 각각 구구단에 해당하는 단을 곱하는 for문을 실행하면서 프로그램을 종료한다.

     

    아직 split()과 map()에 대해서 공부를 안한 사람이라면 이 포스팅은 헷갈릴 수 있다. 다만 split의 역할을 값을 분리하는 역할이고 map()으로 형변환을 해주어 각각 변수들에게 전달했다는 생각만 가지고 있으면 된다. 

     

    포스팅에 사용한 전체 코드

    #!/usr/bin/env python
    # coding: utf-8
    
    # In[1]:
    
    
    name = input("이름을 입력해 주세요.")
    
    
    # In[9]:
    
    
    dan = int(input("출력하고 싶은 구구단의 단을 입력해 주세요."))
    
    
    # In[10]:
    
    
    for i in range(1, 10):
        print(dan, " 곱하기 ", i, " 는 ", dan*i)
    
    
    # In[15]:
    
    
    dan1, dan2 = map(int, input("한번에 출력하고 싶은 구구단의 단을 2개 입력해주세요.").split())
    
    
    # In[17]:
    
    
    print(dan1, ", ", dan2)
    
    
    # In[22]:
    
    
    for i in range(1, 10):
        print(dan1, " 곱하기 ", i, " 는 ", dan1*i)
    
    
    # In[23]:
    
    
    for i in range(1, 10):
        print(dan2, " 곱하기 ", i, " 는 ", dan2*i)
    
    
    # In[ ]:
    
    
    
    
    

     

    연관 포스팅

    2020/12/19 - [Language/Python] - [Python] 파이썬의 반복문(for문)

    반응형

    댓글

    Designed by JB FACTORY