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 객체에 항목이 없을 때도 실행됩니다.
![](https://blog.kakaocdn.net/dn/brCMoA/btskSSB5uPe/FFhACK6k0iJlFb5E95pG5K/img.png)
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 문을 사용합니다.
'프로그래밍 > 파이썬' 카테고리의 다른 글
파이썬 CSV 파일 읽기 (0) | 2023.06.28 |
---|---|
파이썬 Python for else 문 (0) | 2023.06.23 |
파이썬 Python QT 메시지 박스 - PyQt QMessageBox (0) | 2023.06.22 |
파이썬 Python QT PyQt QVBoxLayout (0) | 2023.06.22 |
파이썬 Python QT PyQt QRadioButton (0) | 2023.06.22 |