기술블로그-Django편
📌 Python에서 :와 =는 어떻게 다를까? – 명확한 규칙과 사용법 정리
Chansman
2025. 5. 8. 13:29
📌 Python에서 :와 =는 어떻게 다를까? – 명확한 규칙과 사용법 정리
✅ 1. 개념 먼저 정리하기
기호 용도 대표 사용 예 의미 요약
: | 블록 선언 또는 구조 표현 | 조건문, 함수, 클래스, 딕셔너리 | "여기서부터 시작!" |
= | 값을 변수에 할당 | 변수, 함수 기본값, 키워드 인자 | "왼쪽에 값을 넣는다" |
✅ 2. : (콜론) 사용 규칙
🔹 ① 블록 구조 시작
함수, 조건문, 반복문, 클래스 등은 :로 블록을 여는 것이 문법입니다.
def greet(): # 함수 시작
print("안녕")
if age > 10: # 조건 시작
print("10세 초과")
for i in range(5): # 반복문 시작
print(i)
class Dog: # 클래스 정의
pass
➡️ 들여쓰기 블록을 여는 표시로 쓰인다는 점이 핵심입니다.
🔹 ② 딕셔너리에서 key: value
info = {
'name': '찬희',
'age': 8
}
➡️ 구조 표현으로 key와 value를 매핑할 때 사용합니다.
✅ 3. = (이퀄) 사용 규칙
🔹 ① 변수에 값 할당
x = 10
name = 'Python'
is_active = True
➡️ 왼쪽 변수에 오른쪽 값을 저장한다는 의미입니다.
🔹 ② 함수 인자의 기본값 설정
def greet(name='User'):
print(f"Hello {name}")
➡️ 호출 시 name을 넘기지 않으면 기본값 'User'가 사용됩니다.
🔹 ③ 키워드 인자 전달
def say(name, age):
print(f"{name}은 {age}살입니다")
say(name='찬희', age=8) # 키워드 인자
➡️ 가독성이 좋고, 인자 순서에 의존하지 않도록 해줍니다.
✅ 4. 실전 Django 코드에서의 예시 비교
🔹 : 사용 예
class BlogView(View): # 클래스 블록 시작
def get(self, request): # 함수 블록 시작
return render(request, 'blog.html')
🔹 = 사용 예
template_name = 'blog.html' # 속성에 값 할당
context = {'title': '블로그'} # 딕셔너리 정의
✅ 5. 자주 혼동하는 부분 정리
표현 의미 설명
: | 구조나 블록 선언 | 딕셔너리, 함수/조건문/클래스 등 "시작" 표시 |
= | 값 대입 | 변수 할당, 기본값 설정 등 "값을 넣는다" |
== | 동등 비교 | 좌우 값이 같은지 비교 (if x == 10) |
:= | 월러스 연산자 (Python 3.8+) | 할당 표현식: 값 저장과 반환 동시에 수행 |
✅ 한눈에 보는 요약
구분 사용 예 의미
: | if, def, class, 딕셔너리 | "블록을 열거나 구조를 만든다" |
= | 변수 할당, 기본값 지정 | "값을 저장한다" |
== | 비교 | "같은지 확인한다" |
:= | 대입 + 표현 (3.8+) | "저장하면서 동시에 평가" |
🧠 결론
Python에서 :는 구조의 시작을 알리고, =는 값을 저장하는 데 쓰입니다.
둘은 문법적으로 완전히 다른 역할이지만, 딕셔너리나 함수 정의문처럼 함께 등장하는 경우가 많아 헷갈릴 수 있어요.
딱 한 줄로 기억하세요:
:는 블록을 연다, =는 값을 넣는다!