대입식
a := b(왈러스 연산자 사용)
고질적인 코드 중복 문제 해결
대입문이 쓰일 수 없는 우치에서 변수에 값을 대입하므로 유용
명확성과 코드의 가독성 증가
변수에 값 대입 후 이 값을 평가하여 프로그램 흐름을 어떻게 제어할지 판단
*예시1
if count := fresh_fruit.get('레몬', 0):
make_lemonade(count)
else:
out_of_stock()
*예시2
if (count := fresh_fruit.get('사과', 0)) >= 4:
make_cider(count)
else:
out_of_stock()
*예시3(if, elif, else문)
if (count := fresh_fruit.get('바나나', 0)) >= 2:
pieces = slice_bananas(count)
else:
pieces = 0
try:
smoothies = make_smoothies(pieces)
except Out0fBananas:
out_of_stock()
#왈러스 연산자 사용X
count = fresh_fruit.get('바나나', 0)
if count >= 2:
pieces = slice_bananas(count)
to_enjoy = make_smoothies(pieces)
else:
count = fresh_fruit.get('사과', 0)
if count >= 4:
to_enjoy = make_cider(count)
else:
count = make_cider(count)
if count:
to_enjoy = make_lemonade(count)
else:
to_enjoy'= '아무것도 없음'
#왈러스 연산자 사용o
if (count := fresh_fruit.get('바나나', 0)) >= 2:
pieces = slice_bananas(count)
to_enjoy = make_smoothies(pieces)
elif (count := fresh_fruit.get('사과', 0)) >= 4:
to_enjoy = make_cider(count)
elif count := fresh_fruit.get('레몬', 0):
to_enjoy = make_lemonade(count)
else:
to_enjoy = '아무것도 없음'
코드 재사용을 향상 시키기 위해 무한 루프-중간에서 끝내기
bottles = []
while True: #무한 루프
fresh_fruit = pick_fruit()
it not fresh_fruit: #중간에서 끝내기
break
for fruit, count in fresh_fruit.items():
batch = make_juice(fruit, count)
bottles.extend(batch)
fresh_fruit변수 대입하여 조건 검사
bottles = []
while fresh_fruit := pick_fruit():
for fruit, count in fresh_fruit.items():
batch = make_juice(fruit, count)
bottles.extend(batch)
대입식에서 왈러스 연산자(:=) 사용해서 하나의 식 안에서 변수 이름에 값을 대입하면, 이 값을 평가하고 중복을 줄일 수 있다.
대입식이 더 큰 식의 일부분으로 쓰일 때는 괄호로 둘러싸야 한다.
파이썬에선 switch/case문이나 do/while루프를 쓸 순 없지만, 대입식을 사용하면 더 깔끔하게 흉내 가능합니다.