파이썬의 루프는 다른 프로그래밍 언어와는 다르게 루프에서 반복되는 내부 블록 바로 다음에 else 블록을 둘 수 있는 기능이 있다. 이 else 블록을 사용함에 있어서 주의해야 할 사항들을 이번 장에서 정리한다.

else 블록의 특징

for i in range(3):
    print("Loop %d" % i)
    if i == 1:
        break
else:
    print("Else block!")

>>>
Loop 0
Loop 1
for x in []:
    print("Never runs")
else:
    print("For Else block!")

>>>
For Else block!
while False:
    print("Never runs")
else:
    print("While Else block!")

>>>
While Else block!

else 블록의 활용

a = 4
b = 9
for i in range(2, min(a, b) + 1):
    print("Testing", i)
    if a % i == 0 and b % i == 0:
        print("Not coprime")
        break
else:
    print("Coprime")

>>>
Testing 2
Testing 3
Testing 4
Coprime

첫 번째 스타일의 헬퍼 함수

def coprime(a, b):
    for i in range(2, min(a, b) + 1):
        if a % i == 0 and b % i == 0:
            return False
    return True

두 번째 스타일의 헬퍼 함수

def coprime(a, b):
    is_coprime = True
    for i in range(2, min(a, b) + 1):
        if a % i == 0 and b % i == 0:
            is_coprime = False
            break
    return is_coprime

else 블록을 쓰지 말아야 하는 이유