Controle de Fluxo com Condições
Em Python, a execução de blocos de código é guiada por expressões que retornam valores booleanos. A estrutura principal para tomadas de decisão baseia-se nas declarações if, elif e else.
Estrutura Básica do if
O padrão de uso do if segue esta forma:
if condicao_primaria:
bloco_codigo_um
elif condicao_secundaria:
bloco_codigo_dois
else:
bloco_codigo_tres
Quando condicao_primaria é verdadeira, o bloco_codigo_um é executado. Se for falsa, a verificação move-se para condicao_secundaria. O else captura qualquer cenário não coberto pelas condições anteriores.
Aninhamento de Condições
É possível inserir uma estrutura if completa dentro de outra. O código abaixo demonstra essa possibilidade:
if primeira_condicao:
acao_a
if segunda_condicao:
acao_b
elif terceira_condicao:
acao_c
else:
acao_d
elif quarta_condicao:
acao_e
else:
acao_f
Expressões de Correspondência com match
A partir do Python 3.10, a instrução match...case oferece uma alternativa mais legível a múltiplas cadeias elif. O sujeito é comparado a cada padrão seqüencialmente.
match objeto_estudo:
case padrao_um:
resultado_um
case padrao_dois:
resultado_dois
case _:
resultado_padrao
O curinga _ atua como o caso padrão, garantindo uma correspondência. Múltiplos valores podem ser listados em um único caso usando o operador |.
case 401 | 403 | 404:
print("Acesso não permitido")
Laços de Repetição
Python fornece dois laços fundamentais: for e while.
Laço while
A repetição ocorre enquanto uma condição permnaecer verdadeira.
while condicao_ativa:
bloco_repeticao
Laços infinitos, úteis em certas aplicações de servidor, podem ser interrompidos com Ctrl+C. Uma estrutura else pode ser anexada ao while, sendo exectuada quando a condição se torna falsa, a menos que o laço seja interrompido por um break.
while condicao:
corpo_do_laco
else:
acao_pos_laco
Laço for
Este laço é otimizado para iterar sobre coleções de elementos.
for item in sequencia:
processar(item)
else:
acao_final
A cláusula else é executada após a conclusão normal da iteração. Se um break for acionado dentro do laço, o else será ignorado.
Controle de Iteração
As instruções break e continue alteram o fluxo do laço. break encerra o laço imediatamente, pulando qualquer cláusula else associada. continue interrompe a iteração atual e avança para a próxima iteração.
A instrução pass é um operador nulo, usado como marcador de posição para manter a sintaxe correta quando nenhuma ação é necessária.
status = True
if status:
print("A condição é válida. O processo será executado.")
else:
print("A condição falhou.")