Atualizado: 04/11/2024

Estrutura Condicional if - Python

As estruturas condicionais utilizam expressões lógicas e, com base no resultado dessas expressões, direcionam a execução do programa por diferentes caminhos. Uma dessas estruturas é a condicional if, que tem a seguinte definição formal:

if expressão_lógica:
    instruções
[elif expressão_lógica:
    instruções]
[else: 
    instruções]

Na forma mais simples, após a palavra-chave if vem uma expressão lógica. Se essa expressão retornar True, o bloco de instruções subsequente será executado. Cada uma das instruções deve começar em uma nova linha e deve ter um recuo (recomendado ser de 4 espaços ou múltiplo de 4) a partir da linha do if:

language = "english"
if language == "english":
    print("Hello")
print("End")

Neste exemplo, como o valor da variável language é "english", o bloco if será executado, e a instrução print("Hello") será chamada. O resultado no console será:

Hello
End

Repare que a última linha do código, print("End"), não está indentada, ou seja, não faz parte do bloco if, sendo executada independentemente do resultado da expressão if.

Se, por outro lado, tivesse sido colocada uma indentação, essa instrução também faria parte do bloco if:

language = "english"
if language == "english":
    print("Hello")
    print("End")

Bloco else

Quando precisamos definir um caminho alternativo para o caso em que a expressão no if seja avaliada como False, podemos utilizar o bloco else:

language = "portuguese"
if language == "english":
    print("Hello")
else:
    print("Olá")
print("End")

Se a expressão language == "english" retornar True, o bloco if será executado. Caso contrário, o bloco else será executado. Neste caso, como language == "english" retorna False, o código no bloco else será executado. O console exibirá:

Olá
End

As instruções no bloco else também devem estar indentadas. No exemplo acima, o print("End") não está indentado, portanto será executado independentemente da avaliação do if. Ou seja, ele será executado mesmo se a condição do if for False.

O bloco else pode conter várias instruções, desde que estejam corretamente indentadas:

language = "portuguese"
if language == "english":
    print("Hello")
    print("World")
else:
    print("Olá")
    print("Mundo")

elif

Quando há a necessidade de incluir várias condições alternativas, utilizamos o bloco elif, seguido de um novo bloco de instruções:

language = "german"
if language == "english":
    print("Hello")
    print("World")
elif language == "german":
    print("Hallo")
    print("Welt")
else:
    print("Olá")
    print("Mundo")

Neste exemplo, o Python primeiro verifica a expressão no if. Se ela for True, o bloco correspondente será executado. Caso contrário, a expressão no elif será verificada. Se o resultado do elif for True, as instruções no bloco elif serão executadas. Se todas as condições anteriores falharem, o bloco else será executado.

Podemos utilizar vários blocos elif para tratar diferentes condições:

language = "german"
if language == "english":
    print("Hello")
elif language == "german":
    print("Hallo")
elif language == "french":
    print("Salut")
else:
    print("Olá")

Estruturas if aninhadas

É possível utilizar estruturas if aninhadas, ou seja, um if dentro de outro:

language = "english"
daytime = "morning"
if language == "english":
    print("English")
    if daytime == "morning":
        print("Good morning")
    else:
        print("Good evening")

Aqui, o bloco if contém uma estrutura if/else interna. Se a variável language for "english", o código dentro da estrutura interna verificará o valor de daytime e executará a instrução correspondente. O resultado será:

English
Good morning

As expressões if aninhadas também devem seguir as regras de indentação. Indentações incorretas podem alterar a lógica do programa. Por exemplo, considere o seguinte código:

language = "english"
daytime = "morning"
if language == "english":
    print("English")
if daytime == "morning":
    print("Good morning")
else:
    print("Good evening")

Neste caso, o segundo if é independente do primeiro, e ambos serão avaliados separadamente.

É possível aninhar estruturas if/elif/else dentro de blocos elif e else:

language = "portuguese"
daytime = "manhã"
if language == "portuguese":
    if daytime == "manhã":
        print("Bom dia")
    elif daytime == "tarde":
        print("Boa tarde")
    else:
        print("Boa noite")
else:
    if daytime == "morning":
        print("Good morning")
    elif daytime == "afternoon":
        print("Good afternoon")
    else:
        print("Good evening")

Nesse caso, dependendo da combinação das condições, o bloco adequado será executado.

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com