우연히 알게 되었는데, 파이썬에서는 while, for, try 구문과 else 구문을 같이 사용할 수 있다.

이를 loop-else라고도 부른다.

 

for x in range(3):
    print (f'iteration no {(x+1)} in for loop')
else:
    print ("else block in loop")
print ("Out of loop")

# OUTPUT
# >>> iteration no 1 in for loop
# >>> iteration no 2 in for loop
# >>> iteration no 3 in for loop
# >>> else block in loop
# >>> Out of loop

반복문과 else를 같이 사용하면 else 부분을 마지막에 반드시 실행한다.

이때 break로 반복문을 빠져나오면 else 부분을 실행하지 않는다.

 

for fruit in fruits:
    if fruit == "banana":
        break
else:
    raise ValueError('No banana flavor found!')

이를 이용하면 위와 같은 에러 발생으로 처리할 수도 있다.

정상적으로 확인을 하면 우리는 for문의 if의 break를 거친다.

break를 거쳐서 반복문을 빠져나왔기 때문에 else는 실행하지 않는다.

하지만 for문 전체를 다 돌았음에도 불구하고 break를 거치지 않으면, else로 가고 결국 에러를 발생한다.

 

x = 0
while x < 3:
    x += 1
    print (f'iteration no {x} in while loop')
else:
    print ("else block in loop")
print ("Out of loop")

# OUTPUT
# >>> iteration no 1 in for loop
# >>> iteration no 2 in for loop
# >>> iteration no 3 in for loop
# >>> else block in loop
# >>> Out of loop

while문도 for문과 유사하게 사용한다.

 

try:
    ''' something code '''
except:
    ''' something error '''
else:
    ''' something run '''
finally:
    ''' anyway do this '''

try에서 else는 살짝 사용이 다르다.

except는 에러가 발생했을 때, else는 에러가 발생하지 않았을 때 들어가는 부분이다.

except 없이 try-else만 사용하는 것은 불가능하다.

 

try - except - else - finally인데 이를 정리하자면 아래와 같다.

try: 실행하려는 구문

except: 에러가 발생했다면 실행

else: 에러가 발생하지 않았다면 실행

finally: 반드시 실행

 

 

고민을 시작한 문제 출처 : https://www.acmicpc.net/problem/2839
참고한 문서 자료 : https://www.tutorialsteacher.com/python/python-else-loop

참고한 문서 자료 : https://www.tutorialspoint.com/How-to-use-else-statement-with-Loops-in-Python

참고한 웹 사이트 : https://blog.doosikbae.com/entry/Fluent-Python-Chapter-15-Context-manager%EC%99%80-else-%EB%B8%94%EB%A1%9D

'Computer Science > 파이썬(Python)' 카테고리의 다른 글

Python Logical operator(AND, OR) 설명  (0) 2023.08.15
Python inf  (0) 2023.08.14
Python Underscore(_)  (0) 2023.06.30
Python map  (0) 2023.06.29
Python print  (0) 2023.06.28

+ Recent posts