IT프로그래밍/파이썬

파이썬 변수 기초 : 값에 이름을 붙이면 무엇이 편해질까

MannizDev 2026. 8. 7.

파이썬을 다시 펼쳐 보니, 예전에는 너무 당연하게 쓰던 price = 4500 같은 한 줄을 말로 설명하려고 하자 잠시 막혔습니다. 변수는 거의 모든 코드에 등장하지만, 처음에는 “값을 담는 상자”라는 표현만 외우고 지나가기 쉽습니다.

이번에는 변수를 문법 이름으로 외우기보다 작은 카페 주문서를 만들면서 이해해 보겠습니다. 핵심은 간단합니다.

coffee_price라는 변수 이름표가 값 4500을 가리키는 파이썬 변수 기초 대표 이미지

변수는 나중에 다시 사용할 값에 알아보기 쉬운 이름표를 붙이는 방법입니다.

직전 글에서 숫자와 문자열의 자료형을 구분했다면, 이제 그 값에 이름을 붙여 코드 안에서 다시 사용하는 차례입니다. 자료형부터 보고 싶다면 파이썬 자료형 기초를 먼저 읽어도 좋습니다.

 

테스트 환경

  • 작성 및 실행 확인일 : 2026년 8월 7일
  • 운영체제 : Windows
  • 로컬 실행 환경 : Python 3.9.13
  • 공식 문서 확인 : Python 3.14.7 대입문, 이름 연결, 식별자 문서

이번 글에서는 대입, 재대입, 변수 이름의 가장 기초적인 규칙만 다룹니다. 메모리 주소나 참조 공유처럼 처음부터 알 필요가 없는 내용은 뒤로 미뤘습니다.

 

숫자를 그대로 반복하면 어떤 점이 불편할까

아메리카노 한 잔이 4,500원이라고 해보겠습니다. 변수를 사용하지 않아도 두 잔과 세 잔의 가격은 계산할 수 있습니다.

print("아메리카노 2잔:", 4500 * 2, "원")
print("아메리카노 3잔:", 4500 * 3, "원")
아메리카노 2잔: 9000 원
아메리카노 3잔: 13500 원

문제는 가격이 4,800원으로 바뀌었을 때입니다. 코드 곳곳의 4500을 모두 찾아 고쳐야 합니다. 한 곳이라도 놓치면 같은 메뉴인데 계산 결과가 서로 달라질 수 있습니다.

컴퓨터는 4500이 커피 가격인지, 버스 요금인지 모릅니다. 숫자만 보고 의미를 기억해야 하는 사람 쪽이 먼저 피곤해집니다.

 

값에 이름표를 붙여 다시 사용하기

이번에는 커피 가격에 coffee_price라는 이름을 붙여 보겠습니다.

coffee_price = 4500

print("아메리카노 2잔:", coffee_price * 2, "원")
print("아메리카노 3잔:", coffee_price * 3, "원")

실행 결과는 앞의 코드와 같습니다.

아메리카노 2잔: 9000 원
아메리카노 3잔: 13500 원

결과는 같지만 코드를 읽는 느낌은 다릅니다. 4500 * 2는 4500이 무엇인지 주변 문장을 봐야 알 수 있고, coffee_price * 2는 커피 가격에 잔 수를 곱한다는 뜻이 바로 보입니다.

가격이 4,800원으로 바뀌면 첫 줄만 수정하면 됩니다.

coffee_price = 4800

이제 아래에서 coffee_price를 사용한 모든 계산에 새 가격이 반영됩니다. 변수를 쓰는 이유는 코드를 짧게 만들기 위해서만이 아닙니다. 값의 뜻을 드러내고, 바뀔 값을 한곳에서 관리하기 위해서 사용합니다.

 

등호는 같다보다 이름을 붙인다에 가깝다

coffee_price = 4500

이 코드는 coffee_price4500이 수학적으로 같다는 문제를 푸는 식이 아닙니다. Python은 먼저 오른쪽의 값 4500을 준비하고, 왼쪽의 이름 coffee_price가 그 값을 가리키도록 연결합니다.

공식 Python 문서도 대입문이 이름을 값에 연결하고, 이미 연결된 이름이라면 새 값에 다시 연결한다고 설명합니다. 초보 단계에서는 다음처럼 읽으면 충분합니다.

coffee_price = 4500
커피 가격이라는 이름으로 4500을 기억해 둔다

오른쪽을 먼저 계산한 뒤 왼쪽 이름에 대입하는 실행 순서는 파이썬 코드 실행 순서에서 자세히 확인할 수 있습니다.

 

같은 이름에 새 값을 붙이면 어떻게 될까

변수의 값은 프로그램이 실행되는 동안 바뀔 수 있습니다. 카페가 오후 할인 행사를 시작했다고 생각해 보겠습니다.

coffee_price = 4500
print("정상 가격:", coffee_price, "원")

coffee_price = 3500
print("할인 가격:", coffee_price, "원")
정상 가격: 4500 원
할인 가격: 3500 원

두 번째 대입문이 실행되면 coffee_price라는 이름은 이제 3500을 가리킵니다. 첫 번째 값이 코드 아래까지 자동으로 따라오는 것이 아니라, 현재 그 이름에 연결된 값을 사용합니다.

종이에 붙인 가격표를 떼고 새 가격표로 바꾸는 장면을 떠올리면 쉽습니다. 이름은 같아도 가리키는 값은 달라질 수 있습니다. 이런 동작을 재대입이라고 부릅니다.

 

변수 이름은 미래의 나에게 남기는 메모다

아래 두 코드는 같은 계산을 합니다.

a = 4500
b = 2
c = a * b
print(c)
coffee_price = 4500
cup_count = 2
total_price = coffee_price * cup_count
print(total_price)

둘 다 9000을 출력하지만, 두 번째 코드는 설명을 덧붙이지 않아도 무엇을 계산하는지 알 수 있습니다.

 

짧은 이름이 어울리는 때

for i in range(3)i처럼 아주 짧은 범위에서 관습적으로 쓰는 이름은 괜찮습니다. 하지만 주문 금액처럼 여러 줄에서 계속 사용할 값이라면 의미가 드러나는 이름이 실수를 줄입니다.

 

단어가 여러 개면 밑줄로 나누기

Python에서는 coffee_price, cup_count, total_price처럼 소문자 단어를 밑줄로 연결하는 방식이 읽기 좋습니다. coffeeprice보다 단어의 경계가 눈에 잘 들어옵니다.

길다고 항상 좋은 이름은 아닙니다. the_price_of_one_cup_of_americano처럼 문장 전체를 이름으로 만들기보다, 코드 안에서 의미가 충분히 드러나는 coffee_price 정도가 편합니다.

 

변수 이름 앞에 숫자를 쓰면 왜 안 될까

변수 이름에는 글자, 숫자, 밑줄을 사용할 수 있지만 숫자로 시작할 수는 없습니다. 다음 코드는 잘못된 예입니다.

2cups = 2
print(2cups)

Python 3.9.13에서 직접 실행하면 코드가 시작되기 전에 SyntaxError가 발생했습니다.

  File "03_invalid_variable_name.py", line 1
    2cups = 2
     ^
SyntaxError: invalid syntax

Python은 2cups를 올바른 이름으로 해석할 수 없습니다. 의미를 유지하면서 글자로 시작하도록 고치면 됩니다.

cup_count = 2
print(cup_count)
2

공백도 변수 이름 안에 넣을 수 없습니다. coffee price 대신 coffee_price처럼 밑줄로 연결합니다. for, if, class처럼 Python 문법에 이미 쓰이는 예약어도 변수 이름으로 사용할 수 없습니다.

처음에는 모든 규칙을 외우기보다 글자로 시작하고, 단어 사이는 밑줄로 나누며, 값의 의미가 보이게 짓는다는 세 가지 기준부터 지키면 됩니다.

 

카페 주문서 한 번에 만들기

지금까지 배운 내용을 작은 주문서로 연결해 보겠습니다.

coffee_price = 4500
cup_count = 3
discount = 1000

subtotal = coffee_price * cup_count
final_price = subtotal - discount

print("주문 수량:", cup_count, "잔")
print("할인 전:", subtotal, "원")
print("결제 금액:", final_price, "원")

실행 결과입니다.

주문 수량: 3 잔
할인 전: 13500 원
결제 금액: 12500 원

코드를 위에서부터 읽으면 작은 이야기처럼 이어집니다.

  1. 커피 한 잔의 가격과 주문 수량, 할인 금액에 이름을 붙입니다.
  2. subtotal이라는 이름으로 할인 전 금액을 기억합니다.
  3. final_price라는 이름으로 실제 결제 금액을 기억합니다.
  4. 마지막에 필요한 값을 꺼내 화면에 보여줍니다.

여기서 coffee_price4800으로 바꿔 다시 실행해 보세요. 계산식을 손대지 않아도 할인 전 금액과 결제 금액이 함께 달라집니다. 변수의 편리함은 이렇게 바꿔야 할 곳과 계산하는 곳을 분리할 때 잘 드러납니다.

 

변수를 볼 때 확인할 세 가지

새로운 코드를 읽다가 변수를 만나면 다음 세 가지를 따라가 보세요.

  1. 이 이름은 어떤 값을 가리키는가?
  2. 아래에서 같은 이름에 새 값이 대입되는가?
  3. 이름만 보고 값의 역할을 짐작할 수 있는가?

저도 파이썬을 다시 공부하면서 변수 이름을 대충 짓고 코드를 먼저 완성하려는 습관부터 돌아보게 됐습니다. 짧은 예제에서는 a, b, c도 동작하지만, 며칠 뒤 다시 읽을 때는 coffee_price, cup_count, total_price가 훨씬 친절합니다.

사용자가 입력한 값을 변수에 연결해 보고 싶다면 Python input 사용법을 이어서 연습하면 좋습니다. 다음 기초 편에서는 변수에 저장한 숫자로 더하기, 나누기, 나머지 계산을 하는 연산자의 원리를 살펴보겠습니다.

 

참고

대표 이미지는 글의 주제를 나타내기 위해 이미지 생성 도구로 제작한 일러스트이며, 실제 Python 실행 화면은 아닙니다.

댓글

💲 추천 글