에듀테크 프로젝트 대시보드
변수와 자료형
파이썬의 변수는 값을 담는 상자가 아니라 객체를 가리키는 이름표입니다.
= 로 이름에 객체를 묶습니다(binding). 선언 키워드는 없습니다.
x = 10
name = "파이썬"
pi = 3.14
# 여러 개 한 번에
a, b, c = 1, 2, 3
a = b = 0 # 같은 객체를 세 이름이 참조
# 스왑 (임시변수 불필요)
a, b = b, a
# 언패킹 + 나머지 모으기
first, *rest = [1, 2, 3, 4] # first=1, rest=[2, 3, 4]_ 만 사용, 숫자로 시작 불가Age ≠ age)snake_case, 상수는 UPPER_CASE, 클래스는 PascalCaseif, class, lambda …)와 내장함수 이름(list, sum)은 피하기타입은 값(객체)에 붙어 있고 이름에는 붙지 않습니다. 같은 이름에 다른 타입을 다시 넣을 수 있습니다.
v = 42
print(type(v)) # => <class 'int'>
v = "이제 문자열"
print(type(v)) # => <class 'str'>
# 두 이름이 같은 객체인지 확인
a = [1, 2]
b = a
print(a is b) # => True (id가 같음)
print(id(a) == id(b)) # => True| 타입 | 예시 | 분류 |
|---|---|---|
int | 42, -7, 10_000 | 숫자 · 불변 |
float | 3.14, 2e10 | 숫자 · 불변 |
bool | True, False | 숫자 · 불변 |
str | "hi", '한글' | 시퀀스 · 불변 |
list | [1, 2, 3] | 시퀀스 · 가변 |
tuple | (1, 2, 3) | 시퀀스 · 불변 |
dict | {"a": 1} | 매핑 · 가변 |
set | {1, 2, 3} | 집합 · 가변 |
NoneType | None | 단일값 |
불변 객체는 값을 바꿀 수 없어 새 객체를 만듭니다. 가변 객체는 제자리에서 수정됩니다.
s = "abc"
# s[0] = "A" # TypeError: 'str' object does not support item assignment
s = "A" + s[1:] # 새 문자열 생성
lst = [1, 2, 3]
lst[0] = 99 # OK — 같은 리스트를 수정
lst.append(4)def f(x, acc=[]) 금지b = a 는 복사가 아니라 같은 객체를 가리킵니다 → 복사는 a.copy() 또는 copy.deepcopy()result = None # "값 없음"을 명시
if result is None:
result = compute()
x = 10
del x # 이름 바인딩 제거
# print(x) # NameError