':=' 연산자란?
Python 3.8부터 새로 추가된 := 연산자는 할당 표현식(Assignment Expression)이라고 불립니다. 이 연산자를 사용하면 변수를 선언하면서 동시에 값을 검사하거나 사용할 수 있는 문장을 작성할 수 있습니다.
기존에는 값을 변수에 할당하고 그 값을 조건문이나 반복문에서 따로 사용하는 방식이었지만, :=를 사용하면 더 간결하게 코드를 작성할 수 있습니다.
이 연산자는 '바다코끼리 연산자(Walrus Operator)'라고도 불리며, 모양이 바다코끼리 얼굴처럼 생겼다고 해서 붙여진 이름입니다.
기본 사용법
if (n := len("Hello")) > 3:
print(f"문자열 길이는 {n}입니다.")
설명:
- len("Hello")의 결과를 바로 n에 저장하면서,
- 그 값을 조건식에서 > 3인지 확인하고,
- 조건이 참이면 print()를 실행합니다.
len() 결과를 따로 저장하지 않아도 바로 조건에 활용할 수 있어서 코드가 깔끔해집니다.
반복문에서 유용한 예시
# 사용자 입력을 계속 받되, 'exit'가 입력되면 종료
while (text := input("입력하세요 (exit 입력 시 종료): ")) != "exit":
print(f"입력한 내용: {text}")
설명:
- input()으로 받은 값을 바로 text에 저장하면서,
- 동시에 그 값이 "exit"인지 비교해 반복 여부를 판단합니다.
- 중복 코드를 줄이고, 입력 값을 별도로 다시 호출하지 않아도 됩니다.
리스트 컴프리헨션에서의 활용
results = [y for x in range(10) if (y := x * 2) > 10]
print(results)
설명:
- x * 2 계산 결과를 y에 저장하면서,
- 그 결과가 10보다 큰 경우만 리스트에 추가됩니다.
- 불필요한 중간 변수를 따로 만들지 않아도 돼서 효율적입니다.
주의할 점
- :=는 표현식(expression) 안에서만 사용할 수 있고, 문장(statement)으로는 쓸 수 없습니다.
- Python 3.8 이상에서만 사용할 수 있으므로, 버전을 확인하고 사용해야 합니다.
- 너무 자주 사용하면 코드 가독성이 떨어질 수 있습니다.
:= 연산자는 처음엔 다소 낯설 수 있지만, 익숙해지면 더 짧고 읽기 쉬운 코드를 작성할 수 있게 도와줍니다. 특히 조건문, 반복문, 리스트 컴프리헨션에서 유용하게 활용할 수 있으니, Python을 자주 다룬다면 꼭 익혀두면 좋은 문법입니다.