Python 강좌 / 변수·주석·입력과 출력으로 첫 프로그램 만들기

Python에서는 변수에 값을 연결하고 input()으로 입력받고 print()로 결과를 출력합니다. input의 결과는 문자열이므로 금액 계산에 쓰려면 숫자로 변환해야 합니다.

변수와 주석을 구분하기

=는 오른쪽 계산 결과를 왼쪽 이름에 연결합니다. 수학의 등식 검사와 다르며, 같은 이름에 다시 대입하면 이후에는 새 값을 사용합니다. 이름은 expense처럼 역할을 드러내고 내장 함수인 print, input, list 등을 변수 이름으로 덮어쓰지 않습니다.

관련 동작과 지원 조건은 Python: functions에서 확인할 수 있습니다.

amount = 3500
amount = amount + 500
print(amount)  # 계산 결과 출력

위 코드는 4000을 출력합니다. # 뒤의 주석은 코드를 설명하는 부분으로 실행되지 않습니다. 무엇을 하는지 그대로 반복하기보다 선택 이유나 단위를 적는 데 쓰면 도움이 됩니다.

입력값의 숫자 변환과 실패 처리은 숫자 자료형과 연산: 정수·실수·형 변환 및 예외 처리하기: try·except·else·finally·raise에서 사용하는 규칙과 연결됩니다.

전체 예제와 실행 결과

별도의 실습 폴더에서 아래 파일을 UTF-8로 저장합니다. 가상환경을 선택한 터미널에서 python input_expense.py 명령으로 실행합니다. macOS·Ubuntu에서 가상환경을 사용하지 않는 경우 명령 이름을 python3으로 바꿉니다.

input_expense.py 파일의 전체 내용입니다.

name = input("name: ").strip()
amount_text = input("amount: ").strip()
amount = int(amount_text)
print(f"{name}: {amount:,} KRW")

예상 결과는 다음과 같습니다.

name: amount: lunch: 8,000 KRW

입력에서 출력까지 값 추적하기

첫 번째 줄은 공백을 정리한 항목 이름을 만듭니다. 두 번째 줄의 amount_text는 여전히 문자열이고 int()를 호출한 뒤에야 정수가 됩니다. f-string은 f를 붙인 문자열 안의 중괄호로 값을 표시합니다. 금액의 :,는 천 단위 구분 기호를 출력하는 형식입니다.

터미널에서는 질문 뒤에 입력한 글자가 화면에 보입니다. 위 출력 예시는 입력을 제외한 프로그램의 표준 출력을 이어 적은 것이므로 실제 대화형 화면에서는 줄 배치가 다르게 보일 수 있습니다.

입력 프롬프트 뒤에는 사용자가 입력한 문자도 터미널에 보입니다. 예를 들어 나이를 묻는 입력에 20을 입력하면 원래 값은 문자열 "20"이며, int 변환 후에만 숫자 20입니다. 출력 예시에 입력 문자가 빠져 있더라도 프로그램이 그 값을 출력했다는 뜻은 아닙니다. 빈 입력과 abc는 정수로 변환되지 않으므로 재입력 정책이 필요합니다.

다른 입력으로 확인하고 오류 구분하기

  1. 8000 대신 9000을 넣어 9,000 KRW가 출력되는지 확인합니다.
  2. 8000.5를 넣으면 int()가 처리할 수 없어 ValueError가 발생하는지 확인합니다.
  3. 빈 문자열도 정수로 바꿀 수 없습니다. 원래 8000으로 되돌려 정상 실행을 확인합니다.

input은 입력을 기다리는 함수입니다. 프로그램이 멈춘 것 같아도 커서가 입력을 기다리는지 먼저 확인하세요. 여러 입력을 받을 때 어떤 값이 문자열이고 어떤 값이 숫자인지 이름과 변환 위치를 보고 추적합니다. 잘못된 입력을 다시 받는 처리는 예외 처리와 반복문을 익힌 뒤 추가할 수 있습니다.