2.12. Estruturas Condicionais

As estruturas condicionais ou comandos condicionais permitem alterar a sequência de execução de um programa dependendo do resultado de uma expressão lógica (Figura 2.12).

Estrutura condicional

Figura 2.12 - Estrutura condicional.

Em Python, usamos as palavras reservadas if, else e elif para estruturar blocos de comandos (ou instruções) que organizam o fluxo de nossos programas.

Nota

Muitas vezes chamamos o comando if de cláusula if.

2.12.1. Estrutura Condicional Simples

Podemos estruturar um bloco utilizando um único comando if, como mostrado no Trecho de Código 2.7. Neste exemplo, o comando da linha 04 somente será executado se um valor de NDVI maior que 0.3 e menor que 0.8 for lido na linha 01. O teste condicional associado ao comando if, na linha 03, tem o papel de verificar se a expressão é verdadeira ou falsa. No caso de ela ser verdadeira, o fluxo do programa, na linha 03, é desviado para dentro do bloco de comandos definido pelo comando if, que nesse caso contém apenas o comando da linha 04, e depois o fluxo continua sua execução a partir da primeira linha fora do comando if (nesse caso a linha 06). Se a expessão condicional da linha 03 for avaliada como falsa, o fluxo é desviado diretamente para a linha 06, que é a primeira linha fora da estrutura do comando if. A Figura 2.13 ilustra o fluxo de execução desse programa.

Trecho de Código 2.7 - Exemplo de uso de um comando condicional simples.
1ndvi = float(input("NDVI: "))
2
3if (ndvi > 0.3) and (ndvi < 0.8):
4    print("vegetação densa!")
5
6print("NDVI:", ndvi)

Nota

Atente-se para a indentação das instruções dentro do bloco if e o término da linha com o caracter :.

Estrutura condicional simples

Figura 2.13 - Estrutura condicional simples.

2.12.2. Estrutura Condicional Composta

Neste caso, além da sequência de comandos a ser executada caso a expressão lógica seja avaliada como verdadeira, temos também um conjunto de instruções que pode ser executado caso ela seja avaliada como falsa. O Trecho de Código 2.8 inclui a palavra-chave else, definindo um bloco de comandos que será executado caso a expressão lógica da linha 03 seja avaliada como falsa. A Figura 2.14 ilustra o fluxo de execução desse programa.

Trecho de Código 2.8 - Exemplo de uso de um comando condicional composto.
1ndvi = float(input("NDVI: "))
2
3if (ndvi > 0.3) and (ndvi < 0.8):
4    print("vegetação densa!")
5else:
6    print("pouca vegetação!")
7
8print("NDVI:", ndvi)

Nota

Atente-se para a indentação das instruções dentro dos blocos if e else, bem como o término dessas linhas com o caracter :.

Estrutura condicional composta

Figura 2.14 - Estrutura condicional composta.

2.12.3. Comandos Condicionais Encadeados

Podemos utilizar a palavra-chave elif para encadear uma estrutura condicional. O Trecho de Código 2.9 inclui a palavra-chave elif para definir um novo teste condicional caso o teste da linha 03 seja falso. Caso os testes das linhas 03 e 05 sejam falsos, o bloco delimitado pela instrução else será executado.

Trecho de Código 2.9 - Exemplo de uso de um comando condicional encadeado.
 1ndvi = float(input("NDVI: "))
 2
 3if (ndvi < -1.0) or (ndvi > 1.0):
 4    print("NDVI fora do intervalo!")
 5elif (ndvi > 0.3) and (ndvi < 0.8):
 6    print("vegetação densa!")
 7else:
 8    print("pouca vegetação!")
 9
10print("NDVI:", ndvi)

Nota

As estruturas condicionais podem ser aninhadas, isto é, podem ser instruções dentro das cláusulas if, else e elif.

Nota

A seção de código, ou bloco de comandos dentro das cláusulas if, else e elif podem conter diversas instruções.

2.12.4. Exemplo

Problema: Escreva um programa que pergunte ao usuário o valor de um ano qualquer e que o informe se o ano é ou não bissexto.

Solução:

ano = int(input("Ano: "))

if ano % 400 == 0:
    print("É bissexto!")
elif ano % 100 == 0:
    print("Não é bissexto!")
elif ano % 4 == 0:
    print("É bissexto!")
else:
    print("Não é bissexto!")

print("Fim!")

Nota

Este problema foi introduzido na Seção 2.11.

Exemplos

Vamos fazer os exemplos 02 e 03.