반응형
python for-else 예시
1.
for i in range(10):
print(i)
if i == 5:
print("find it!")
break
else:
print("Can't find")
output---
0
1
2
3
4
5
find it!
for i in range(10):
print(i)
if i == 11:
print("find it!")
break
else:
print("Can't find")
output
0
1
2
3
4
5
6
7
8
9
Can't find
--------------------
이처럼 for-else문을 활용해서
for문에서 특정한 행동을 완료하여 break로 탈출을 했는지 안했는지 판별을 해줄 수 있다.
break를 하지 않는 다면 else에 적혀진 문장을 수행한다.
만약 for-else문을 사용하지 않는다면 예시의 두번째를 이렇게 써야한다.
breaked = False
for i in range(10):
print(i)
if i == 11:
print("find it!")
breaked = True
break
if not(breaked):
print("Can't find")
큰 차이는 없고, for else가 익숙하지 않아서 오히려 이 방법이 더 가독성이 좋을 수 있다.
2.
balls = [1,2,3,4]
weapons = [11,22,3,44]
for ball_idx , ball_val in enumerate(balls):
print("ball :" , ball_val)
for weapon_idx , weapon_val in enumerate(weapons):
print("weapons : ", weapon_val)
if ball_val == weapon_val:
print("공과 무기가 충돌")
break
else:
continue
print("바깥 for 문 break")
break
이처럼 이중포문에서 for else문을 활용하여
내부 for문에서 break가 일어난다면 바깥 for문도 break가 일어나게하여
이중포문을 모두 종료시킬 수 있다.
for-else를 모른다면 bool 변수와 if문을 활용해서 위의 예처럼 종료시킬 수도 있다.
balls = [1,2,3,4]
weapons = [11,22,3,44]
breaked = False
for ball_idx , ball_val in enumerate(balls):
print("ball :" , ball_val)
for weapon_idx , weapon_val in enumerate(weapons):
print("weapons : ", weapon_val)
if ball_val == weapon_val:
print("공과 무기가 충돌")
breaked = True
break
if (breaked):
print("바깥 for 문 break")
break
위와 아래를 비교했을 때 위가 좀더 깔끔하긴 하다.
알면 좋고, 몰라도 크게 차이는 없어보인다.
#for-else #파이썬
반응형
'Python' 카테고리의 다른 글
vscode selenium python webdriver 바로 꺼짐 오류 (5) | 2022.01.05 |
---|---|
pyinstaller: command not found , pyinstaller 에러 (0) | 2021.12.27 |
os로 파일 위치 구하기 (0) | 2021.12.25 |