• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

7번 교육과정(큐) 질문드려요

22.03.18 17:55 작성 조회수 122

0

7번 교육과정설계 답안을 보면
for i in range(n):
for x in plan:
if x ~~~
if x! ~~~~~
print()
else:
~~~~
이런식의 파이썬 코드인데 else 위치에 대해 궁금한점이 있습니다.
결국 for x in plan 을 돌면서 밑의 조건들을 수행하고
else부분은 이러한 for문 밑의 조건들과 반대가 되어 이렇게 파이썬 코드가 진행 되는 것 같은데 제가 생각한 부분이 맞나요?
 
보통 else문은 if문과 반대가 되었을때 쓰이는 것으로 알고 있어 else문의 위치가 많이 어색합니다.
 
혹시 else문을 if문의 반대에 쓰이는 것 뿐만 아니라 위 코드처럼 for문 전체에 반대가 되는 조건일 때도 쓰이는지 여쭤보고 싶습니다.
 
 

답변 1

답변을 작성해보세요.

0

안녕하세요^^

파이썬에는 

if ~ else ~ 구문만 있는게 아니라 for ~ else ~ 구문도 존재합니다.

아래 내용을 읽어보세요.

 

python 코딩을 하면서 if - elif - else 문은 많이 알고 많이 사용하지만

for - else 문은 편리한 문법임에도 불구하고 많이 모르고 사용을 안 하는 경우가 많은것 같습니다.

for - else 문이 작동되는 과정을 간단히 설명하자면!

for문과 같이 사용되는 else문은 for문이 break 등으로 중간에 빠져나오지 않고 끝까지 실행 됐을 경우 else문이 실행되는 방식으로 진행됩니다.

간단한 코드 실행 결과를 예측해보며 이해해 봅시다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
for i in range(5):
    print(i, end=' ')
else:
    print("for문이 끝까지 실행됬습니다!")
 
 
 
 
for i in range(5):
    if i == 2:
        break
    print(i, end=' ')
else:
    print("for문이 끝까지 실행됬습니다!")
cs

 

다들 예상하셨겠지만 결과는 이렇습니다ㅎㅎ

 

 

 

for - else는 저희가 코딩하면서 flag를 사용하여 반복을 하면서 참, 거짓으로 가려낼때

flag변수를 따로 사용하지 않고도 구현이 가능해지고

이밖에도 다양하게 활용 가능한 알아두면 좋은 문법입니다.

 

 

어디까지나 제 풀이방식이긴 하지만 이 문제를 python for-else를 사용하여 풀어보면 좋을거 같습니다.