Encadeando condicionais#
É possível testar uma nova condição caso a anterior falhe, utilizando o operador elif
. Ele pode ser lido como "senão, se". Vamos trabalhar com um exemplo.
Exercise 1
Answer
Ao digitar o número 0
, a codição numero == 0
será avaliada como 0 == 0
resultando no valor booleano True
.
Desta forma, o bloco do if
será executado imprimindo a mensagem 0 não é nem par, nem ímpar
no terminal.
Como a condição do if
foi executada, as condições do elif
e else
não serão avaliadas.
Exercise 2
Answer
Ao digitar o número 11
, a condição numero == 0
será avaliada como 11 == 0
resultando no valor booleano False
. Então, o bloco do if
não será executado.
Em seguida, a próxima condição elif numero % 2 == 0:
será avaliada como elif 11 % 2 == 0:
resultando também no valor booleano False
, pois o resto da divisão de 11 por 2 é 1. Então o bloco do elif
também não será executado.
Como nenhuma das condições dos blocos do if
e do elif
foram avaliadas com o resultado True
, então o bloco do else
é executado, imprimindo a mensagem 11 é impar
.
Exercise 3
Answer
Ao digitar o número 10000
, a condição numero == 0
será avaliada como 10000 == 0
resultando no valor booleano False
. Então o bloco do if
não será executado.
Em seguida, a próxima condição elif numero % 2 == 0:
será avaliada como elif 10000 % 2 == 0:
resultando no valor booleano True
, pois o resto da divisão de 10000 por 2 é 0. Então o bloco do elif
é executado imprimindo a mensagem 10000 é par
no terminal.
Como a condição do elif
foi avaliada com o valor True
, então o bloco de código do else
não é executado.
Exercise 4
Answer
Quando queremos avaliar várias opções no Python utilizamos os operadores condicionais encadeados if-elif-else
.
Ao utiliza os operadores condicionais encadeados, somente um bloco de código será executado. E será o bloco de código que pertence a primeira condição avaliada como True
. Ou o bloco de código do else
caso nenhuma condição seja avaliada como True
.
No nosso caso, o if numero == 0
foi o primeiro a ser avaliado com o valor True
fazendo com que as outras condições sejam ignoradas, mesmo que essas outras condições resultem no valor True
.
Exercise 5
Answer
Porque se o número não for 0
, nem par então a única opção possível é que ele seja ímpar. Assim, não precisamos fazer uma condição para esse caso.
Exercise 6
Exercise 7
Answer
Ao final da execução do código a variável salario
estará com o valor 1000 armazenado.
No início do código, a variável salario
recebe o valor 500
.
A condição do if
é avaliada como 500 < 1000
resultando no valor True
. Dessa forma, o bloco do if
é executado. E como o código utiliza condicionais encadeados, as outras condições não são avaliadas.
Exercise 8
Answer
No início do código, a variável salario
recebe o valor 500
.
A condição do if
é avaliada como 500 < 1000
resultando no valor True
. Dessa forma, o bloco do if
é executado e a variável salario
recebe o valor 1000
.
Logo em seguida, existem outros dois operadores condicionais if
que serão avaliados também, pois não se tratam de operadores condicionais encadeados.
Desta forma, ao final da execução do código, o valor armazenado na variável salario
será 2000
.
If's encadeados#
Dentro do bloco de um if
, elif
ou else
, podemos ter qualquer código Python válido. Inclusive outros if
's. Considere a função a seguir, que, dado o nível de gasolina no carro e a quantidade de dinheiro que a pessoa possui no momento, sugere o que a pessoa deve fazer para aproveitar o feriado.
Exercise 9
Answer
A condição gasolina > 10
do primeiro if
será avaliada como 5 > 10
, resultando no valor False
. Então, o bloco do else
será executado.
Dentro do bloco do else
, a condição dinheiro < 100
será avaliada como 100 < 100
, resultando também no valor booleano False
.
Executando o bloco do else
e imprimindo o texto Você deveria abastecer o carro antes de ir para a praia.
.
Agora vamos ver os Operadores Lógicos.