로직을 수행하는 다른 방식은 pieces = 0 대입문을 else 블록에 넣는 것이다.
count = fresh_fruit.get('바나나', 0) if count >= 2: pieces = slice_bananas(count) else: pieces = 0 try: smoothies = make_smoothies(pieces) except OutOfBananas: out_of_stock()
두 번째 방식은 pieces 변수가 두 위치(if 문을 이루는 두 블록)에서 정의되는 것처럼 보여서 조금 이상하게 느껴질 수 있다. 파이썬의 영역 규칙으로 인해(변수 영역과 클로저의 상호작용 방식을 이해하라) 이런 식으로 정의를 분리해도 기술적으로는 잘 작동하지만, 코드를 읽거나 변수 정의를 찾아내기는 쉽지 않다. 따라서 많은 사람이 pieces = 0 대입을 먼저 하는 첫 번째 방식을 선호한다.