파이썬은 for나 while 블록 뒤에 else가 올 수 있다. 하지만 else는 루프중 break가 발생하지 않을 경우에 루프가 끝나고 실행이된다. 이는 직관적이지 않고 혼동을 야기한다
for i in range(1):
print(f'{i}')
else:
print('end')
# 0
# end
for i in range(2):
print(f'{i}')
if i == 1:
break
else:
print('broke')
# 0
# 1 'broke'는 출력되진 않음
for i in []:
print('출력 안됨')
else:
print('empty')
# empty
# 이렇게 직관적이지 않아 차라리 도움이 함수를 사용해라
def foo(a, b, n):
for i in range(n):
if a % i == 0 and b % i == 0:
return True
return False
print(foo(x, y, n))