본문으로 바로가기

[Python] 데이터 입력 받기(Input)

category [Dev]/Python 2017. 12. 4. 14:12


[Python] 데이터 입력 받기(Input)


데이터 입력 받기(Input) 이란?


데이터를 저장하고 가공하기 위해서는 데이터에 대한 입력이 필요합니다.

Input은 사용자에게 데이터를 입력 받기 위한 함수입니다. Input은 입력 받은 값을 문자열로 처리하기 때문에 숫자를 입력받을 경우 숫자형 Type으로 변환해주어야 합니다.




문자열 입력 받기


문자열을 입력 받은 후 변수에 저장하기 - 1

코드
text1 = input()    # text1 변수에 사용자 입력값을 저장합니다.
안녕하세요!         # "안녕하세요!"를 입력하였습니다.
print(text1)
 
결과
안녕하세요!



문자열을 입력 받은 후 변수에 저장하기 - 2

코드
text2 = input('문자열을 입력해 주세요 : ')    # text2 변수에 사용자 입력값을 저장합니다.
 
코드 실행 시 
문자열을 입력해 주세요 :                      # 사용자는 "안녕하세요."를 입력합니다.
 
코드
print(text2)
 
결과
안녕하세요.





숫자 입력 받기


숫자를 입력 받은 후 변수에 저장하기

코드
num = int(input('숫자를 입력해 주세요 : '))        # num 변수에 사용자 입력값을 정수형으로 변환하여 저장합니다.
 
코드 실행 시
숫자를 입력해 주세요 :                             # 사용자는 "10"를 입력합니다.
 
코드
print(num)
 
결과
10





여러개의 값 입력 받기


Input과 Split을 사용하여 한번에 여러개의 값을 입력받을 수 있습니다.


변수 st1과 st2에 각각 문자열 입력 받기

코드
st1, st2 = input('문자열을 입력해주세요 : ').split() # 사용자 입력값을 split()(공백)으로 구분하여 st1, st2에 저장합니다.
 
코드 실행 시
문자열을 입력해주세요 : 안녕하세요 반갑습니다.            # '안녕하세요 반갑습니다.' 사용자 입력합니다.
# 입력받은 '안녕하세요 반갑습니다.' 문자열을 split()(공백)으로 구분하여 각각 st1, st2에 저장합니다.

코드
print(st1 , st2)
print(st1)
print(st2)
 
결과
안녕하세요 반갑습니다.    # st1, st2
안녕하세요             # st1
반갑습니다.            # st2



변수 num1과 num2에 숫자를 입력받은 후 연산하기

여러개의 숫자를 한번에 입력받을 시 문자열을 여러개 받는 코드를 응용하면 될것으로 예상하고 실행해보았습니다.

코드
num1, num2 = int(input('두개의 숫자를 입력해 주세요 : ').split())
 
결과
Traceback (most recent call last):
  File "/Users/ossian/Desktop/Git/Python3/Python_Study.py", line 6in <module>
    num1, num2 = int(input('두개의 숫자를 입력해 주세요 : ').split())
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'



실행결과 위처럼 오류가 발생됩니다. 원인은 현재의 제 지식수준으론 이해할 수 없습니다.

구글링 해본 결과 아래와 같이 map 함수를 사용하여 여러개의 숫자를 입력 받을 수 있습니다.

map 함수는 일종의 반복처리를 해주는 함수이며 자세한 내용은 map 함수 포스팅을 통해 확인해보겠습니다.

코드
num1, num2 = map(int,input("두개의 숫자를 입력해주세요 : ").split())
# num1과 num2 변수에 입력받은 사용자 값을 split하고 int로 변환하여 저장합니다.
 
print('입력하신 숫자는 ', num1, '과', num2, '입니다.')
print('두 숫자의 합은', num1+num2, '입니다.')
print(type(num1), type(num2))
 
결과
두개의 숫자를 입력해주세요 : 20 50    # input에 의한 사용자 입력 
입력하신 숫자는  20 과 50 입니다.
두 숫자의 합은 70 입니다.
<class 'int'> <class 'int'>






'[Dev] > Python' 카테고리의 다른 글

[Python] FOR 반복문  (0) 2017.12.05
[Python] IF 제어문  (0) 2017.12.05
[Python] 데이터 입력 받기(Input)  (3) 2017.12.04
[Python] 집합(Set)  (0) 2017.12.04
[Python] 딕셔너리(Dictionary)  (0) 2017.11.30
[Python] 튜플 인덱싱 & 슬라이싱  (0) 2017.11.30

댓글을 달아 주세요

  1. 구구구구 2019.04.01 13:38

    map(int 다음에 ( 가 아니라 , 게 맞나용?

    • 구구구구 2019.04.01 13:39

      해보니깐 ( 가 아니라 , 게 맞네요
      map ? 사용하면 달라지는게 있나보네요 ㅠ 파이썬 어렵

  2. 초보 2019.07.23 17:18

    split 함수로 두 개의 입력값을 받으면 그 값이 list라 int를 받아야 하는 int()함수가 오류가 나는 것 같네요.