O que são as instruções 'else' e 'elif'?
E se você também quiser que seu programa execute uma parte do código quando a expressão de teste for False
? Ou se você quiser incluir outra expressão de teste? O Python tem outras palavras-chave que você pode usar para fazer instruções if
mais complexas, else
e elif
. Ao usar if
, else
e elif
em combinação, você pode escrever programas complexos com várias expressões de teste e instruções para executar.
Trabalhar com else
Você sabe que quando usa uma instrução if
, o corpo do programa será executado somente se a expressão de teste for True
. Para adicionar mais código que será executado quando a expressão de teste for False
, você precisará adicionar uma instrução else
.
Vamos adaptar um exemplo da seção anterior:
a = 27
b = 93
if a >= b:
print(a)
Neste exemplo, se a
não for maior ou igual a b
, nada acontecerá. Digamos que você queira, em vez disso, imprimir b
se a expressão de teste for False
:
a = 27
b = 93
if a >= b:
print(a)
else:
print(b)
Saída: 93
Se a expressão de teste for False
, o código no corpo da instrução if
será ignorado e o programa continuará sendo executado por meio da instrução else
. A sintaxe de uma instrução if/else
é sempre:
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
Trabalhar com elif
No Python, a palavra-chave elif
é a abreviação de else if. O uso de instruções elif
permite que você adicione várias expressões de teste ao programa. Essas instruções são executadas na ordem em que são escritas, de modo que o programa vai inserir uma instrução elif
somente se a primeira instrução if
for False
. Por exemplo:
a = 27
b = 93
if a <= b:
print("a is less than or equal to b")
elif a == b:
print("a is equal to b")
Saída: a is less than or equal to b
Nesta variação, a instrução elif
neste bloco de código não será executada, pois a instrução if
é True
.
A sintaxe de uma instrução if/elif
é:
if test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
Combinar as instruções if
, elif
e else
Você pode combinar as instruções if
, elif
e else
para criar programas com lógica condicional complexa. Lembre-se de que uma instrução elif
é executada somente quando a condição if
é false
. Observe também que um bloco if
pode ter apenas um bloco else
, mas pode ter vários blocos elif
.
Vamos examinar um exemplo com uma instrução if
, elif
e else
:
a = 27
b = 93
if a < b:
print("a is less than b")
elif a > b:
print("a is greater than b")
else:
print ("a is equal to b")
Um bloco de código que usa todos os três tipos de instruções tem a seguinte sintaxe:
if test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
else:
# statement(s) to be run
Trabalhar com lógica condicional aninhada
O Python também dá suporte à lógica condicional aninhada, o que significa que você pode aninhar as instruções if
, elif
e else
para criar programas ainda mais complexos. Para aninhar as condições, recue as condições internas e tudo o que estiver no mesmo nível de recuo será executado no mesmo bloco de código:
a = 16
b = 25
c = 27
if a > b:
if b > c:
print ("a is greater than b and b is greater than c")
else:
print ("a is greater than b and less than c")
elif a == b:
print ("a is equal to b")
else:
print ("a is less than b")
Esse trecho de código produz a saída a is less than b
.
A lógica condicional aninhada segue as mesmas regras que a lógica condicional regular dentro de cada bloco de código. Veja um exemplo da sintaxe:
if test_expression:
# statement(s) to be run
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
else:
# statement(s) to be run