01. 변수와 타입 (의미를 담는 그릇)
"변수(Variable)는 값을 담는 상자가 아닙니다. 데이터에 붙이는 이름표(Label)입니다."
1. 변수의 본질 (Mental Model)
수학에서의 \(x = 10\)은 "x와 10은 같다"라는 뜻이지만,
파이썬에서의 x = 10은 "10이라는 데이터 객체에 x라는 이름표를 붙여줘"라는 뜻입니다. 이를 바인딩(Binding)이라고 합니다.
graph LR
subgraph Memory["메모리 (Memory)"]
Val(("10<br>(데이터)"))
Val2(("3000<br>(데이터)"))
end
subgraph Names["이름표 (Namespace)"]
x["x"]
coffee["coffee_price"]
end
x -->|"가리킴 (Reference)"| Val
coffee -->|"가리킴 (Reference)"| Val2
style Val fill:#fff9c4,stroke:#fbc02d
style Val2 fill:#fff9c4,stroke:#fbc02d
style x fill:#e1f5fe,stroke:#01579b
style coffee fill:#e1f5fe,stroke:#01579b
우리가 변수를 쓰는 가장 큰 이유는 나중에 다시 쓰기 위해서이고, 더 중요한 이유는 이 데이터가 무엇인지 설명(Storytelling)하기 위해서입니다.
❌ 나쁜 예 (암호문)
✅ 좋은 예 (스토리텔링)
coffee_price = 3000
count = 5
total_sales = coffee_price * count
print(total_sales) # 15000 (아, 커피 5잔 가격이구나!)
AI와 협업 포인트: 이름 짓기 (Naming)
AI에게 코드를 시킬 때 가장 중요한 것이 변수 이름입니다.
a, b, data 같은 모호한 이름 대신, user_email, is_login_success 처럼 구체적인 의미를 담으세요.
AI는 변수 이름을 보고 문맥을 파악합니다.
2. 기본 자료형 (Data Types)
파이썬이 처리하는 데이터의 종류(Type)입니다.
AI가 짠 코드를 볼 때 "이게 숫자인가? 문자인가?" 헷갈린다면 type() 함수로 물어볼 수 있습니다.
| 타입 | 설명 | 예시 | 파이썬 표기 |
|---|---|---|---|
| 정수 (Integer) | 딱 떨어지는 숫자 | -1, 0, 1, 100 | int |
| 실수 (Float) | 소수점이 있는 숫자 | 3.14, -0.01 | float |
| 문자열 (String) | 글자들의 나열 (따옴표 필수) | "Hello", '123' | str |
| 불리언 (Boolean) | 참/거짓 (스위치) | True, False | bool |
3. 형 변환 (Casting)과 f-string
형 변환이 필요한 순간
다른 타입끼리는 더하거나 섞을 수 없는 경우가 많습니다. 특히 숫자와 문자를 더할 때 에러가 납니다.
이럴 때 타입을 강제로 바꿔줘야 합니다.
# 문자열 "100"을 정수 100으로 바꾸기
number = int("100")
# 정수 20을 문자 "20"으로 바꾸기
text = str(20)
print("내 나이는 " + str(age) + "살") # "내 나이는 20살"
🚀 최신 문법: f-string (추천 ⭐)
일일이 str()로 바꾸고 +로 붙이는 건 너무 귀찮습니다.
요즘 개발자와 AI는 f-string을 씁니다. 문자열 앞에 f를 붙이고 중괄호 {} 안에 변수를 쏙 넣으면 됩니다.
4. 산술 연산자 (계산기)
더하기(+), 빼기(-), 곱하기(*), 나누기(/)는 기본입니다.
파이썬에는 특수한 계산기가 몇 개 더 있습니다.
| 기호 | 의미 | 예시 | 설명 |
|---|---|---|---|
// |
몫 | 7 // 2 -> 3 |
소수점 버리고 정수만 취함 |
% |
나머지 | 7 % 2 -> 1 |
짝수/홀수 판별할 때 필수 |
** |
거듭제곱 | 2 ** 3 -> 8 |
(2 x 2 x 2) |