본문 바로가기
Python

[Python] 사용자 입력받는 방법 - input() 예제 및 사용법

by A6K 2022. 11. 4.

파이썬으로 작성한 프로그램에서 가끔 사용자의 입력을 받아야 할 경우가 있다. print() 함수를 이용해서 사용자의 화면에 문자열을 출력하는 것과 비슷하게 파이썬은 input() 함수를 통해 사용자로부터 뭔가를 입력받는다.

input() 함수

파이썬의 input() 함수가 호출되면 사용자로부터 키보드 입력을 받게 된다. 사용자가 키보드를 눌러 이런저런 데이터를 입력하다가 엔터키를 누르면 지금까지 입력했던 내용이 문자열의 형태로 리턴된다. 파이썬 코드에서는 input() 함수가 리턴한 문자열 데이터를 이용해서 원하는 동작을 하면 된다.

예를 들어보자.

data = input()
print('입력 값 : ' + data)

data = input()
print('입력 값 : ' + data)

# test
# 입력 값 : test
# python
# 입력 값 : python

input() 함수를 호출해서 사용자로부터 데이터를 입력받고, 입력값을 print() 함수로 출력했다. 첫 번째 input()에서는 test, 두번째는 python을 입력했다. 사용자가 입력한 값은 input() 함수에서 리턴되어 data 변수에 할당되고, print() 함수에서 사용되어 화면에 출력되었다.

프롬프트 출력

input() 함수만 호출되면 화면에 아무것도 출력되지 않은 채 사용자의 입력만 대기한다. 사용자는 이게 입력하라는건지 뭔가 수행중인지를 알 수 없다. 이 경우 화면에 입력을 해달라는 문자열을 출력해주면 사용자가 적당한 값을 입력하게 된다.

input() 함수는 입력을 받기 전에 화면에 출력할 문자열, 즉 프롬프트를 출력할 수 있는 기능을 제공한다. 예를 들어 어떤 파일을 지울 때, "삭제하시겠습니까? (Y/N) : "라는 문자열을 화면에 출력해주면 사용자는 '음.. 이걸 지운다는 의미고 내가 Y 혹은 N 둘중 하나를 입력해야겠군'이라고 생각하게 된다.

input() 함수의 인자로 문자열을 주면 사용자로부터 입력을 받기전에 인자로 받은 문자열을 화면에 출력해준다.

예를 들어보자.

num = 0
while True:
  print(num)
  quit = input("quit? : ")
  if quit == 'Y' or quit == 'YES':
    break
  num = num + 1

# 0
# quit? : n
# 1
# quit? : N
# 2
# quit? : N
# 3
# quit? : N
# 4
# quit? : N
# 5
# quit? : Y

0부터 1씩 숫자를 증가시키는 간단한 코드다. 숫자가 증가되면서 매번 그만하겠냐고 사용자에게 물어본다. input() 함수의 인자로 넘겨준 "quit? : "이라는 문자열이 매번 화면에 출력되면서 사용자의 입력을 기다린다.

사용자가 Y 라는 문자를 입력할 때까지 숫자가 증가하며 Y를 입력한 경우 반복문이 종료된다.

raw_input()

파이썬2와 파이썬3 에서 input() 함수는 살짝 다르게 사용된다. raw_input()은 파이썬 3의 input()과 동일하다. 사용자의 입력을 무조건 문자열형태로 리턴한다.

파이썬 2에서 input()은 사용자의 입력을 적당한 타입으로 받는다. 즉, 2라는 숫자를 입력했을 때 파이썬 2의 input()은 int 타입으로 리턴한다. 반면 파이썬 2의 raw_input()이나 파이썬3의 input()은 문자열 '2'를 리턴한다.

파이썬2 코드를 다룰일이 있다면 input()과 raw_input()의 차이점에 유의하자. (관련글 : https://hbase.tistory.com/163)


 

파이썬 스크립트 작성에 도움되는 글 모음

파이썬으로 프로그램을 작성할 때 도움되는 글들을 모아본다. 개발환경 [Python] macOS에 파이참 설치 [Python] 파이참 깃허브 연동 [Python] 파이썬 PIP란? [Python] VSCode를 이용한 개발환경 [Python] python3를

hbase.tistory.com

 

[Python] 'NameError: name 'input' is not defined' 에러 (raw_input과 input 차이)

파이썬 코딩을 하다가 다음 에러를 만나게 될 경우가 있다. NameError: name 'input' is not defined input이 정의되지 않았다는 의미다. 간단한 파이썬 프로그램 하나를 실행해보자. input_value = input("Please inpu

hbase.tistory.com

 

댓글