728x90
반응형
코딩테스트를 풀고 난 후 다른 사람의 풀이를 보는데 평소처럼 if~else를 쓴 것이 아닌 for~else를 쓴 구문을 보고 들여쓰기를 잘못했다고 생각했으나 나의 착각이었다.
파이썬에서는 else가 for문과도 함께 쓰이기도 한다. for문을 사용하다보면, 루프 중간에 break문으로 빠져나오는 경우들이 있는데, break문이 걸려서 빠져나가는 지 아닌지를 판단이 필요한 경우가 있다.
즉, for~else문은 "for문에서 break가 발생하지 않았을 경우"의 동작을 else문에 적어준다고 보면 된다
이 때 else의 사용으로 간단하게 해결할 수 있습니다.
for-else의 사용 예시
data=[1,2,3,4,12,5]
test=0
for num in data:
if num > 10:
test=1
break
if test==0:
print("10보다 큰 수 없음")
data=[1,2,3,4,12,5]
for num in data:
if num > 10:
break
else:
print("10보다 큰 수 없음")
위의 두 개의 코드는 동일한 기능을 한다.
첫번째는 test라는 변수를 두어서 판별한 반면, 두번째는 for문에서 break가 발생하지 않았을 경우, 즉 10보다 큰 수가 없었다면 else문으로 넘어가서 바로 print되도록 쓴 것이다.
728x90
반응형
'알고리즘' 카테고리의 다른 글
[LeetCode] 167. Two Sum II - Input Array Is Sorted | LIM (0) | 2023.05.04 |
---|---|
[LeetCode] 350. Intersection of Two Arrays II | LIM (0) | 2023.05.03 |
[LeetCode] 441.Arranging Coins | LIM (0) | 2023.05.02 |
[Algorithm] 투 포인터 (feat. leetcode Two Sum, Three Sum) | LIM (0) | 2023.02.19 |
Linked List vs Array List | LIM (0) | 2022.10.03 |
댓글