변수란? 이름 짓는 규칙부터 오류 예시까지!
2025. 6. 23. 19:36ㆍPython
변수란 무엇일까?
용어 의미
| Variable (배러리어블) | 데이터를 저장할 수 있는 공간 또는 이름표 |
| 값(Value) | 숫자, 문자, 리스트 등 우리가 저장하고 싶은 실제 데이터 |
| 할당 연산자 = | **오른쪽 값을 왼쪽 변수에 저장(assign)**하는 기호 |
📌 즉, 변수는 **"데이터를 담는 이름이 붙은 상자"**라고 이해하면 쉬워요!
변수 구성 요소
age = 25
- age: 변수 이름
- 25: 저장할 값
- =: 할당 연산자 → 우변 값을 좌변 변수에 저장
변수 구조 그림으로 이해하기
┌────────────┐
│ age │ ← 변수 이름
└────┬───────┘
│
▼
[ 25 ] ← 저장된 값
변수 이름 짓는 규칙 (Naming Rule)
변수는 아무 이름이나 지을 수 있는 게 아닙니다. 파이썬에는 다음과 같은 네이밍 규칙이 있어요:
규칙 예시 설명
| ✅ 영문자, 숫자, 밑줄(_) 사용 가능 | my_score, data1 | 일반적인 변수 |
| ❌ 숫자로 시작 불가 | 1score → 오류 | 숫자 시작 ❌ |
| ❌ 공백 사용 불가 | my name → 오류 | 공백 대신 _ 사용 |
| ❌ 예약어 사용 금지 | for, print → 오류 | 파이썬 키워드는 사용 금지 |
| ✅ 대소문자 구분 | Name ≠ name | 서로 다른 변수로 인식됨 |
💡 Tip: 파이썬에서는 snake_case 스타일 (소문자 + 밑줄)이 가장 일반적입니다.
변수 값은 바꿀 수 있어요!
한 번 저장한 값도, 나중에 얼마든지 바꿀 수 있습니다.
변수는 ‘고정된 값’이 아니라 ‘데이터가 담긴 그릇’이기 때문이죠.
score = 80
print(score) # 출력: 80
score = 95 # 새로운 값으로 덮어쓰기
print(score) # 출력: 95
✅ 기존 값을 덮어쓸 수 있기 때문에, 변수는 다양한 상황에서 유연하게 사용할 수 있어요.
⚠️ 정의되지 않은 변수를 쓰면 오류가 발생해요
변수를 선언하지 않고 사용하면 아래와 같은 NameError가 발생합니다.
print(price)
▶ NameError: name 'price' is not defined
❗ 정의하지 않은 변수를 사용하면 “정의되지 않았다”는 에러가 발생합니다. 항상 먼저 선언한 후 사용하세요!
실습 예제: 변수 선언부터 에러까지
# 변수 선언
nickname = "Jenny"
print(nickname) # 출력: Jenny
# 변수 값 변경
nickname = "Anna"
print(nickname) # 출력: Anna
# 정의되지 않은 변수 사용
print(not_defined) # NameError 발생
복습 퀴즈 (초보자용)
- 변수 이름으로 올바른 것은?
- my-score ❌
- 3score ❌
- my_score ✅
- for ❌
- 아래 코드 결과는?
x = 5
x = 10
print(x)
정답: 10 (기존 값이 10으로 덮어씌워짐)
- 다음 코드에서 오류가 발생하는 이유는?
print(apple)
정답: apple이라는 변수가 아직 선언되지 않았기 때문에 NameError가 발생합니다.
핵심 요약 카드
항목 설명
| 변수 | 데이터를 저장하는 이름표 |
| 할당 연산자 = | 우변의 값을 좌변 변수에 저장 |
| 변수 이름 규칙 | 영어, 숫자, _, 대소문자 구분, 예약어 금지 |
| 값 변경 | 변수는 언제든지 새 값으로 덮어쓸 수 있음 |
| 오류 발생 | 없는 변수 사용 시 NameError 발생 |
마무리 꿀팁
- 변수는 **‘데이터에 이름을 붙여두는 행위’**라고 생각하세요.
- 변수명은 직관적으로! 어떤 데이터를 담고 있는지 알아볼 수 있게 짓는 것이 좋아요.
- 자주 실습하면서 변수 선언 → 값 출력 → 값 변경 → 오류 실험까지 해보면 금방 익숙해질 수 있어요.
'Python' 카테고리의 다른 글
| 점프 투 파이썬 핵심 요약 노트 (문자열, 리스트, 변수 편) (0) | 2025.06.24 |
|---|---|
| 파이썬 f-string 완전 쉬운 설명 (3) | 2025.06.23 |
| print() vs input() 차이 (2) | 2025.06.23 |
| 📌 [부동산 분석 2편] folium, geopandas로 지도 위에 인프라 시각화하기 (0) | 2025.06.18 |
| 파이썬 주민등록번호로 성별 판단하는 코드 분석 (0) | 2025.05.28 |