본문 바로가기
Python

[Python] 왈러스 연산자(:=)

by teamnova 2025. 11. 27.
728x90

안녕하세요. 

오늘은 왈러스 연산자(:=) 에 대해 알아보겠습니다. 

 

파이썬 3.8 버전에서 추가된 왈러스 연산자(:=)의 정식 명칭은 대입 표현식(Assignment Expression)입니다.

이 연산자를 잘 활용하면 코드가 훨씬 간결해집니다.

 

왈러스 연산자(:=)

기존 파이썬에서는 변수에 값을 할당하는 구문(=)과 값을 비교하는 조건문은 한 줄에 쓸 수 없었습니다. 

반드시 할당을 먼저 하고, 그 다음 줄에서 비교해야 했죠.

 

하지만 왈러스 연산자를 사용하면 변수에 값을 할당하는 동시에, 그 값을 바로 반환할 수 있습니다.

즉, 할당과 테스트(조건 검사)를 한 줄로 줄여줍니다.

 

사용 예시


기존 방식 ( := 사용 X)
리스트의 길이를 구해서 변수 n에 담고, 그 n을 다시 if 문에서 검사해야 합니다. 

코드가 세로로 길어지고 n이라는 변수가 시선에 흩어집니다.

data = [1, 2, 3, 4, 5]

n = len(data)  # 1. 할당
if n > 3:      # 2. 조건 검사
    print(f"데이터가 {n}개로 충분합니다.")


왈러스 연산자 사용
할당과 조건 검사를 한 줄에 끝낼 수 있습니다. 

n에는 len(data) 값이 저장되고, 동시에 그 값이 > 3과 비교됩니다.

data = [1, 2, 3, 4, 5]

if (n := len(data)) > 3:  # 할당과 검사를 동시에!
    print(f"데이터가 {n}개로 충분합니다.") 

 

while 문에서의 활용

기존 방식 ( := 사용 X)
입력을 받기 위해 while 문 밖에서 한 번, 안에서 한 번 코드를 중복해서 작성하거나, while True와 break를 써야 했습니다.

# 방법 1: 코드가 중복됨
line = input("입력하세요: ")  # 중복
while line != "quit":
    print(f"당신의 입력: {line}")
    line = input("입력하세요: ") # 중복

# 방법 2: while True 패턴
while True:
    line = input("입력하세요: ")
    if line == "quit":
        break
    print(f"당신의 입력: {line}")


왈러스 연산자 사용

입력받은 값이 line에 저장되고, 그 값이 quit인지 바로 검사합니다. 

# line에 입력을 저장하고, 그 값이 "quit"이 아니면 반복
while (line := input("입력하세요: ")) != "quit":
    print(f"당신의 입력: {line}")