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 절은 반복 가능 개체에 항목이 없을 때도 실행됩니다.
다음 흐름도는 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()함수를 사용하여 이름을 묻는 메시지를 표시합니다.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명령문을 사용하면 프로그램에서 루프 뒤에 if문과 flag를 사용할 필요가 없습니다.
이 새 프로그램에서는 입력 이름이 목록에 있는 사람과 일치하면 해당 사람의 정보가 표시되고 break문을 사용하여 루프를 종료합니다.
루프가 break문을 만나면 else절이 실행되지 않습니다.
요약
- 루프에 브레이크 문이 없거나 반복 가능한 개체에 항목이 없는 경우 코드 블록을 실행하려면 Python for else 문을 사용합니다.
'프로그래밍 > 파이썬' 카테고리의 다른 글
파이썬 엑셀 파일 읽기 (0) | 2023.07.04 |
---|---|
파이썬 CSV 파일 읽기 (0) | 2023.06.28 |
파이썬 Python For else (0) | 2023.06.22 |
파이썬 Python QT 메시지 박스 - PyQt QMessageBox (0) | 2023.06.22 |
파이썬 Python QT PyQt QVBoxLayout (0) | 2023.06.22 |