본문 바로가기
Python

[Python] input 함수 사용하여 사용자 입력받기.

by ds31x 2023. 10. 10.
Python의 input() 함수는
표준 입력 스트림(stdin)으로부터 데이터를 받는 함수

 

Terminal에서 수행되는 CLI (Command Line Interface) 프로그램은

  • 입력을 stdin (표준 입력, standard input)에서 받아드리고
  • 출력은 stdout (표준 출력, standard output)에서 수행함.

stdoutstdin은 일종의 file stream이며

데이터를 해당 stream에 흘려보내거나 흘려받아서 출력과 입력이 이루어짐.

 

 A stream is a fairly abstract, high-level concept
representing a communications channel 
to a file, device, or process.

2024.09.11 - [CE] - [CE] Stream이란

 

[CE] Stream이란

Stream:데이터가 연속적으로 흐르는 방식으로 처리한다는 개념으로,데이터의 입출력을 일종의 bit (or byte) 들의 흐름으로 여겨서 처리하는 것으로 생각하고이와 같은 방식으로 I/O가 이루어지는 대

ds31x.tistory.com

 

다음의 url에서 python에 대한 부분을 살펴볼 것.

https://dsaint31.me/mkdocs_site/CE/ch10/ce10_2_04_stdio/#standard-io-library_1

 

BME228

Standard I/O Library Standard I/O Library란? 다양한 OS에서 Input/Output(입출력)을 수행할 수 있도록 구현된 라이브러리. 프로그래머는 프로그래밍 과정에서 직접 입출력을 수행하는 코드를 작성하지 않는다

dsaint31.me

 


Python에서는 input()함수를 제공하여 사용자로부터 쉽게 입력을 받아들임.

a = input()
b = input('Enter your input:')

위의 코드는 간단하게 input()함수의 사용법을 보여줌.

  • 첫번째 라인은 input()함수가 호출되면 아무 출력이 없이 사용자의 입력을 대기하며,
    사용자가 입력하고 엔터를 치면 해당 입력값을 variable a에 할당한다.
  • 두번째 라인은 input()함수에 문자열 argument를 주었는데,
    해당 문자열이 출력되고 나서 사용자의 입력을 대기한다.
    이처럼 prompt 문자열을 지정하는 방식이 보다 권장된다.
    이 역시 사용자가 문자열을 입력하고 엔터를 치면 해당 입력값이 b에 할당됨.

주의할 것은 input()의 반환값은 항상 문자열이기 때문에 이를 int, float로 바꾸기 위해선 해당 문자열로부터 변환처리를 해주어야 함.

 

각 numeric type에서 문자열로부터 생성하는 방법을 이용해야함. 다음을 참고.

a = int(input('Enter your integer input:'))
f = float(input('Enter your float input:'))
  • 주의할 점은 입력된 문자열이 numeric type으로 변환이 불가한 경우, ValueError가 발생함.
  • exception handling이 필요함.

input()함수가 반환하는 것이 string(문자열)이므로
str의 method인 split 등을 통해 공백문자나 separator (or delimiter) 문자를 통해
복수개의 입력을 한번에 받을 수도 있음.

 

다음 예제를 참고하라.

a, b, c = input('Enter your three inputs (delimeter is space):').split()
print(f'[{a}]')
print(f'[{b}]')
print(f'[{c}]')
a, b, c = input('Enter your three inputs (delimeter is comma):').split(',')
print(f'[{a}]')
print(f'[{b}]')
print(f'[{c}]')
  • 주의할 점은 이 방식은 unpacking을 이용하기 때문에 반드시 입력되는 변수의 숫자를 맞게 입력해야함.
  • 변수의 숫자와 입력한 값들의 갯수가 맞지 않으면 ValueError가 발생함.

다음과 같이 하나의 list로 받으면 여러 가변적인 갯수를 받을 수 있다는 장점이 있지만,

사용자가 잘못 입력한 경우에 error가 발생하지 않기 때문에

사용자에게 이같은 경우 체크하여 잘못 입력했음을 알려줘야 함.

t = input('Enter your three inputs (delimeter is space):').split()
print(t)

같이보면 좋은 자료들

https://ds31x.tistory.com/325

 

[Python] 사용자와 상호작용: 입력받기: input, argv, and sys

input() 함수 사용하기2023.10.10 - [Python] - [Python] input 함수 사용하여 사용자 입력받기. [Python] input 함수 사용하여 사용자 입력받기.Terminal에서 수행되는 CLI (Command Line Interface) 프로그램은 입력을 stdi

ds31x.tistory.com

https://dsaint31.me/mkdocs_site/CE/ch10/ce10_2_04_stdio/#standard-io-library_1

 

BME228

Standard I/O Library Standard I/O Library란? 다양한 OS에서 Input/Output(입출력)을 수행할 수 있도록 구현된 라이브러리. 프로그래머는 프로그래밍 과정에서 직접 입출력을 수행하는 코드를 작성하지 않는다

dsaint31.me