기술블로그-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에서 :는 구조의 시작을 알리고, =는 값을 저장하는 데 쓰입니다.
둘은 문법적으로 완전히 다른 역할이지만, 딕셔너리나 함수 정의문처럼 함께 등장하는 경우가 많아 헷갈릴 수 있어요.

딱 한 줄로 기억하세요:

:는 블록을 연다, =는 값을 넣는다!