프로그래밍/파이썬

파이썬 Python For else

에이티에스 2023. 6. 22. 17:27
728x90

Python for else 문 

Python에서 for else문에는 선택적 절이 있을 수 있으며, 특히 Java 또는 C#과 같은 다른 언어에서 사용하는 경우 익숙하지 않을 수 있습니다.

 

다음은 else 절이 있는 for 문의 구문을 보여줍니다:

for item in iterables:
    # process item 
else:
    # statementCode language: PHP (php)

 

이 구문에서 else 절은 루프가 정상적으로 실행되는 경우에만 실행됩니다. 즉, 루프에 Break 문이 발생하면 else 절이 실행되지 않습니다

 

또한 else 절은 iterables 객체에 항목이 없을 때도 실행됩니다.

 

다음 흐름도는 for…else 문을 보여줍니다:

else 조항은 효과적으로 적용하는 방법을 알고 있는 경우 경우에 매우 유용합니다.

 

Python for else 문 예제

각 사용자가 다음과 같은 name과 age로 구성된 dictionary인 사용자 목록을 가지고 있다고 가정합니다:

people = [{'name': 'John', 'age': 25},
        {'name': 'Jane', 'age': 22},
        {'name': 'Peter', 'age': 30},
        {'name': 'Jenifer', 'age': 28}]Code language: JavaScript (javascript)

 

그리고 이름으로 사람을 검색하고 싶습니다.

목록에 해당 사용자가 포함되어 있는 경우 해당 사용자의 정보를 표시할 수 있습니다. 그렇지 않으면 이름을 찾을 수 없다는 메시지를 표시하려고 합니다.

 

이를 위해 다음과 같은 프로그램을 만들 수 있습니다.

people = [{'name': 'John', 'age': 25},
        {'name': 'Jane', 'age': 22},
        {'name': 'Peter', 'age': 30},
        {'name': 'Jenifer', 'age': 28}]

name = input('Enter a name:')

found = False
for person in people:
    if person['name'] == name:
        found = True
        print(person)
        break

if not found:
    print(f'{name} not found!')
Code language: PHP (php)

작동 원리 :

  • 먼저 input() 함수를 사용하여 이름을 묻는 메시지를 표시합니다.
  • 그런 다음 플래그(found)를 False로 설정합니다. 입력 이름이 목록에 있는 사람과 일치하는 경우 해당 값을 True로 설정하고 해당 사람의 정보를 표시한 break문을 사용하여 루프를 종료합니다.
  • 마지막으로 found 플래그를 확인하고 메시지를 표시합니다.

다음은 이름이 Peter와 Maria인 프로그램을 실행합니다.

 

1차 실행:

Enter a name:Peter
{'name': 'Peter', 'age': 30}Code language: Shell Session (shell)

2차 실행

Enter a name:Maria
Maria not found!Code language: Shell Session (shell)

그것은 완벽하게 잘 작동합니다.

그러나 for else명령문을 사용하면 프로그램이 훨씬 짧아집니다.

 

for else 명령문을 사용하는 프로그램의 새 버전을 보여 줍니다.

people = [{'name': 'John', 'age': 25},
        {'name': 'Jane', 'age': 22},
        {'name': 'Peter', 'age': 30},
        {'name': 'Jenifer', 'age': 28}]

name = input('Enter a name:')

for person in people:
    if person['name'] == name:
        print(person)
        break
else:
    print(f'{name} not found!')Code language: PHP (php)

 

for else 명령문을 사용하면 프로그램에서 루프 뒤에 flag와 If 문 사용할 필요가 없습니다.

이 새 프로그램에서는 입력 이름이 목록에 있는 사람과 일치하면 해당 사람의 정보가 표시되고 break문을 사용하여 루프를 종료합니다.

break루프가 명령문을 만나면 else절이 실행되지 않습니다.

 

요약

  • 루프에 break 문이 없거나 반복 가능한 개체에 항목이 없는 경우 코드 블록을 실행하려면 Python for else 문을 사용합니다.
728x90
반응형
그리드형