이번 편의 목표: 대입과 기본 자료형을 이해하고 변수의 값을 바꿉니다.
계산기를 쓸 때는 숫자를 다시 입력하면 됩니다. 프로그램에서는 같은 값을 여러 번 사용할 일이 많습니다. 지출 기록기라면 항목 이름과 금액을 기억해야 합니다. 이때 값에 이름을 붙이는 방법이 변수입니다.
등호는 같다는 뜻이 아니다
`amount = 4500`은 오른쪽의 값에 `amount`라는 이름을 연결한다는 뜻입니다. 수학의 등식과 달리, 프로그램의 대입문에는 처리 방향이 있습니다. 오른쪽을 계산한 뒤 왼쪽 이름에 연결합니다.
item = "커피"
amount = 4500
quantity = 2
total = amount * quantity
print(item)
print(total)
amount = 5000
print(amount)
print(total)
print(type(item))
print(type(amount))
print(type(3.5))
print(type(True))처음 출력되는 합계는 `9000`입니다. 그다음 `amount`를 바꿔도 이미 계산한 `total`은 `9000`입니다. 엑셀의 수식처럼 연결되어 계속 다시 계산되는 것이 아닙니다. 새 가격으로 계산하려면 `total = amount * quantity`를 다시 실행해야 합니다.
자료형은 값의 성격이다
이름 — 예 — 용도 int — 4500 — 개수, 원 단위 금액 float — 3.5 — 소수 부분이 있는 수 str — "커피" — 글자와 문장 bool — True, False — 조건 판단 결과 NoneType — None — 값이 없음을 나타내는 특별한 값
`type()`은 값의 자료형을 알려 줍니다. 파이썬에서는 보통 변수 선언 앞에 `int`나 `str`을 적지 않습니다. 그렇다고 자료형이 없는 것은 아닙니다. 값에는 자료형이 있고, 허용되는 연산도 자료형에 따라 달라집니다.
`10 + 20`은 `30`이고, `"10" + "20"`은 `"1020"`입니다. `"10" + 20`처럼 문자열과 정수를 바로 더하면 `TypeError`가 발생합니다. 숫자로 계산할지 문장으로 이어 붙일지 의도를 밝혀야 합니다. 변환 방법은 4편에서 다룹니다.
이름을 잘 지으면 설명이 줄어든다
`a`, `b`보다 `price`, `quantity`가 읽기 쉽습니다. 여러 단어는 `total_amount`처럼 밑줄로 연결합니다. 숫자로 시작하는 이름이나 공백이 들어간 이름은 사용할 수 없습니다. `if`, `for`처럼 문법에 쓰이는 예약어도 이름으로 쓸 수 없습니다.
또한 `print`, `list`, `str` 같은 내장 기능의 이름을 변수 이름으로 사용하면 그 기능을 가려 버릴 수 있습니다. 처음부터 `message`, `items`, `text`처럼 목적이 드러나는 이름을 고르면 좋습니다.
변수를 방에 비유하면 처음에는 이해하기 쉽지만, 목록처럼 변경 가능한 값을 다룰 때는 비유가 맞지 않는 부분이 생깁니다. 지금은 이름이 값을 가리킨다고 기억해 두세요. 14편에서 두 이름이 같은 목록을 가리키는 경우를 확인합니다.
직접 해 보기
공책 가격 `1800`, 수량 `3`을 변수에 저장하고 합계를 출력하세요. 가격을 `2000`으로 바꾼 뒤 합계를 다시 계산해 출력하세요.
해설
price = 1800
quantity = 3
total = price * quantity
print(total)
price = 2000
total = price * quantity
print(total)결과는 `5400`, `6000`입니다. 대입은 그 줄이 실행되는 시점의 결과를 연결한다는 점이 핵심입니다.
COMMENTS
댓글 0
이 글에 대한 의견이나 질문을 남겨 주세요.
등록된 댓글이 없습니다.