Unit 8. 입력 값을 변수에 저장하기

본격적으로 코딩 도장에서 심사를 하려면 입력 값을 변수에 저장할 수 있어야 합니다. 코딩 도장에서는 사람이 손으로 입력하는 대신 자동으로 값을 입력해준다 하더라도 입력 부분은 반드시 처리해주어야 합니다.

윈도나 macOS처럼 GUI 화면이 나오는 프로그램은 마우스와 키보드를 사용하여 입력을 받습니다. 하지만 파이썬을 배울 때는 IDLE이나 콘솔(터미널, 명령 프롬프트)에서 글자만 입출력 하게 되죠. 이렇게 콘솔에서 입력하는 방식을 표준 입력(standard input, stdin), 출력하는 방식을 표준 출력(standard output, stdout)이라 합니다.

8.1 문자열 입력받기

먼저 input 함수를 사용하여 표준 입력으로 사용자의 입력을 받아보겠습니다.

  • 변수 = input()
  • 변수 = input(문자열)

>>>에서 input()을 입력한 뒤 엔터 키를 누르면 다음 줄로 넘어갑니다. 그리고 Hello, world!를 입력한 뒤 엔터 키를 누르면 입력한 그대로 출력됩니다.

>>> input()
Hello, world! (입력)
'Hello, world!'

input이 실행된 다음에는 아무 내용이 없어서 입력을 받는 상태인지 출력이 없는 상태인지 알 수가 없습니다. 이때는 input의 괄호 안에 문자열을 지정합니다.

>>> input('문자열을 입력하세요: ')
문자열을 입력하세요: Hello, world! (입력)
'Hello, world!'

'문자열을 입력하세요: '처럼 안내 문구가 먼저 나옵니다. 여기에 문자열을 입력한 뒤 엔터 키를 누르면 입력한 그대로 출력됩니다. 즉, 이 문자열은 스크립트 파일 사용자에게 입력받는 값의 용도를 미리 알려줄 때 사용합니다. 다른 말로는 프롬프트(prompt)라고도 부릅니다(파이썬 프롬프트 >>>와 같은 의미입니다).

이번에는 input을 스크립트 파일로 만들어보겠습니다. 다음 내용을 IDLE의 소스 코드 편집 창에 입력한 뒤 실행해보세요.

input_string.py

s = input('문자열을 입력하세요: ')     # 사용자의 입력을 변수에 저장
 
print(s)     # 변수의 내용을 출력

소스 코드를 실행하면 '문자열을 입력하세요: '만 출력됩니다. 이 상태에서 Hello, world!를 입력하고 엔터 키를 누르세요.

실행 결과

문자열을 입력하세요: Hello, world! (입력)
Hello, world!

마찬가지로 입력한 내용이 그대로 출력됩니다. input은 표준 입력을 받는 함수이며 주로 입력 값을 변수에 저장해서 사용합니다.

참고 | 표준 입력, 표준 출력

콘솔(터미널, 명령 프롬프트)에서는 키보드 입력이 표준 입력이고, 콘솔에 글자를 보여주는 것이 표준 출력입니다. 표준 입력과 표준 출력의 형태는 정해져 있지 않고 설정하기에 따라 달라집니다. 즉, 리다이렉션(<, >)과 파이프(|)라는 것을 사용하면 파일의 내용을 표준 입력으로 보낼 수도 있고, 표준 출력을 파일로 저장할 수도 있습니다. 파이썬 코딩 도장에서는 입력 값을 사람이 직접 입력하지 않고 리다이렉션과 파이프를 통해 자동으로 표준 입력에 값을 입력시킵니다.