Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Notação if-elif-else

Bom dia!

Na aula onde o professor mostra o uso de condicionais (if - elif - else) fiquei com uma dúvida quanto a segunda alternativa para validação da condicional.

Abaixo, trecho do primeiro código mostrado:

...
  elif (lista[1] < 2000 and lista[1] <= 2010):
...

segundo ele, o trecho acima também poderia ser escrito assim em Python:

...
  elif (2000 < lista[1] <= 2010):
...

Esta alternativa é possível somente nos casos de uso do operador lógico and ou pode ser utilizado também em casos com o operador or?

Como seria essa validação com uma condição or?

...
  elif (lista[1] < 2000 or lista[1] <= 2010):
...

Muito obrigado!

Marcelo Costa

1 resposta
solução!

Bom dia Marcelo, tudo bem?

A validação com a condição or não seria possível nesse caso específico, pense no seguinte, quando você faz (lista[1] < 2000 or lista[1] <= 2010), a primeira condição retorna verdadeiro quando os valores são menores que 2000, já a segunda condição retorna verdadeiro quando os valores são menores ou iguais a 2010, ou seja, englobam os valores que também são menores que 2000.

Logo somente a segunda condição já seria necessária.

Um adendo é que o seu primeiro código deveria estar escrito com um sinal de maior na primeira condição para ser equivalente ao segundo código, dessa forma:

elif (lista[1] > 2000 and lista[1] <= 2010):

Mas há um caso onde o or será útil, quando quisermos pegar por exemplo valores maiores que 2010 e menores que 2000, se fizéssemos com o and, não retornaria nenhum valor pois nenhum número é maior que 2010 e menor que 2000 ao mesmo tempo.

Ficaria assim:

(lista[1] < 2000 or lista[1] > 2010):

Espero que tenha sido claro.

Estou à disposição. Bons estudos!