Python의 input() 함수는
표준 입력 스트림(stdin)으로부터 데이터를 받는 함수
Terminal에서 수행되는 CLI (Command Line Interface) 프로그램은
- 입력을 stdin (표준 입력, standard input)에서 받아드리고
- 출력은 stdout (표준 출력, standard output)에서 수행함.
stdout
과 stdin
은 일종의 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이란
다음의 url에서 python에 대한 부분을 살펴볼 것.
https://dsaint31.me/mkdocs_site/CE/ch10/ce10_2_04_stdio/#standard-io-library_1
Python에서는 input()
함수를 제공하여 사용자로부터 쉽게 입력을 받아들임.
a = input()
b = input('Enter your input:')
위의 코드는 간단하게 input()
함수의 사용법을 보여줌.
- 첫번째 라인은
input()
함수가 호출되면 아무 출력이 없이 사용자의 입력을 대기하며,
사용자가 입력하고 엔터를 치면 해당 입력값을 variablea
에 할당한다. - 두번째 라인은
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://dsaint31.me/mkdocs_site/CE/ch10/ce10_2_04_stdio/#standard-io-library_1
'Python' 카테고리의 다른 글
[Python] Programming Language and Introduction of Python. (1) | 2023.10.23 |
---|---|
[Python] __name__ : Special string variable (0) | 2023.10.10 |
[Python] Example: input, sys.argv and argparse (0) | 2023.10.10 |
[Python] tuple (0) | 2023.10.06 |
[Python] 환경변수 접근하기 (2) | 2023.09.30 |