Resumo : neste tutorial, você aprenderá sobre a for else
instrução Python e como usá-la de forma eficaz.
Introdução à instrução Python for else
Em Python, a for
instrução pode ter uma cláusula opcional else
, com a qual você pode não estar familiarizado, especialmente se vier de outras linguagens como Java ou C#.
O seguinte mostra a sintaxe da for
instrução com a else
cláusula:
for item in iterables:
# process item
else:
# statement
Linguagem de código: PHP ( php )
Nesta sintaxe, a else
cláusula será executada somente se o loop funcionar normalmente . Em outras palavras, a else
cláusula não será executada se o loop encontrar uma break
instrução.
Além disso, a else
cláusula também é executada quando o objeto iterável não possui nenhum item.
O fluxograma a seguir ilustra a instrução for…else:
A else
cláusula é bastante útil em alguns casos se você souber como aplicá-la de forma eficaz.
Exemplo de instrução Python para else
Suponha que você tenha uma lista de pessoas, onde cada pessoa é um dicionário que consiste name
e age
assim:
people = [{'name': 'John', 'age': 25},
{'name': 'Jane', 'age': 22},
{'name': 'Peter', 'age': 30},
{'name': 'Jenifer', 'age': 28}]
Linguagem de código: JavaScript ( javascript )
E você deseja procurar uma pessoa pelo nome.
Se a lista contiver a pessoa, você deseja exibir as informações dessa pessoa. Caso contrário, você deseja mostrar uma mensagem informando que o nome não foi encontrado.
Para fazer isso, você pode criar um programa como este:
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!')
Linguagem de código: PHP ( php )
Como funciona:
- Primeiro, solicite um nome usando a
input()
função. - Em seguida, defina um sinalizador (
found
) comoFalse
. Se o nome de entrada corresponder a uma pessoa na lista, defina seu valor comoTrue
, mostre as informações da pessoa e saia do loop usando abreak
instrução. - Por fim, marque a
found
bandeira e mostre uma mensagem.
O seguinte executa um programa com o nome Peter
e Maria
:
1ª corrida:
Enter a name:Peter
{'name': 'Peter', 'age': 30}
Linguagem de código: Sessão Shell ( shell )
2ª corrida:
Enter a name:Maria
Maria not found!
Linguagem de código: Sessão Shell ( shell )
Funciona perfeitamente bem.
Porém, se você usar a for else
instrução, o programa será muito mais curto.
O seguinte mostra a nova versão do programa que usa a for else
instrução:
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!')
Linguagem de código: PHP ( php )
Ao usar a for else
instrução, o programa não precisa usar uma instrução flag
e uma if
após o loop.
Neste novo programa, se o nome de entrada corresponder a uma pessoa na lista, ele mostrará as informações da pessoa e sairá do loop usando a break
instrução.
Quando o loop encontra a break
instrução, a else
cláusula não será executada.
Resumo
- Use
for else
a instrução Python para executar um bloco de código se o loop não encontrar umabreak
instrução ou se o objeto iterável não tiver nenhum item.