4.11. Comando if-elif-else
¶
Para simplificar ainda mais o código de programas com if-else
aninhados, o Python oferece o comando if-elif-else
, cuja sintaxe é a seguinte.
if condição:
# bloco contendo comandos a serem executados
dentro_do_if_1
dentro_do_if_2
...
dentro_do_if_p
elif condição elif1:
dentro_do_elif1_1
dentro_do_elif1_2
...
dentro_do_elif1_m1
elif condição elif2:
dentro_do_elif2_1
dentro_do_elif2_2
...
dentro_do_elif2_m2
# outros possíveis blocos de elif, cada um com a sua condição
elif condição elifk:
dentro_do_elifk_1
dentro_do_elifk_2
...
dentro_do_elifk_mk
else: # o else é opcional
dentro_do_else_1
dentro_do_else_2
...
dentro_do_else_q
comando_apos_if
Ou seja, o if-elif-else
pode ter um ou mais blocos com elif
, cada um
com a sua condição específica. Cada bloco (condição) é testado um de cada vez,
até que uma condição seja satisfeita e apenas os comandos dentro desse bloco
são executados. Quando nenhuma condição é satisfeita, os comandos dentro do
else
são executados. Assim, não é necessário que haja um else
no final.
A figura 4.4 ilustra mostra como a contração de else-if
como efif
(em pseudo-código estamos usando “senão-se”) pode tornar o código mais legível e portanto mais fácil de ler e entender. Como o Python desloca cada bloco de um tab, após vários tabs pode se tornar difícil ler o código que fica espremido no canto direito da página. O pseudo-código também ilustra esse benefício de formatação e simplificação da leitura do código ao comparar o uso de else
(senão) seguido de if
(se) e de elif
(senão-se junto).

Figura 4.4: Fluxogramas e pseudo-código para classificar a situação de um aluno entre aprovado
, reprovado
e de recuperação
usando a contração “senão-se” (elif
).¶
Usando elif
poderíamos escrever o algoritmo da figura 4.4 da seguinte forma:
O elif
portanto é apenas uma contração do else if
que torna mais claro
o tratamento das várias alternativas, encadeando as condições. Blocos de
elif
podem ser repetidos várias vezes. Suponha por exemplo que gostaríamos
de conhecer os alunos aprovados com louvor
, ou seja, com nota superior
a 9.0. Nesse caso, uma outra solução seria:
Faça os seus próprios experimentos com o trecho de código a seguir.