O que são declarações «outros» e «elif»?
E se você também quiser que seu programa execute um pedaço de código quando sua expressão de teste for False
? E se você quiser incluir outra expressão de teste? Python tem outras palavras-chave que você pode usar para fazer instruções mais complexas if
, else
e elif
. Quando você usa 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 você usa uma if
instrução, o corpo do programa será executado somente se a expressão de teste for True
. Para adicionar mais código que será executado quando sua expressão de teste for False
, você precisa adicionar uma else
instrução.
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 acontece. Digamos que você queira 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 será ignorado if
e o programa continuará em execução a partir da else
instrução. A sintaxe de uma if/else
instrução é sempre:
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
Trabalhar com elif
Em Python, a palavra-chave elif
é curta para else if. O uso de elif
instruções permite que você adicione várias expressões de teste ao seu programa. Essas instruções são executadas na ordem em que são escritas, portanto, seu programa inserirá uma elif
instrução somente se a primeira if
instrução 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
Nessa variação, a elif
instrução no bloco de código não será executada, porque a if
instrução é True
.
A sintaxe de uma if/elif
instrução é:
if test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
Combinar if
, elif
e else
instruções
Você pode combinar if
, elif
e else
instruções para criar programas com lógica condicional complexa. Lembre-se de que uma elif
instrução é executada somente quando a if
condição é false
. Observe também que um if
bloco pode ter apenas um else
bloco, mas pode ter vários elif
blocos.
Vejamos um exemplo com um if
, um elif
e uma else
declaração:
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
Python também suporta lógica condicional aninhada, o que significa que você pode aninhar if
, elif
e else
instruções para criar programas ainda mais complexos. Para aninhar condições, recue as condições internas e tudo 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")
Este pedaço 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. Aqui está 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