Pular para o conteúdo principal

Declarações IF, ELIF e ELSE do Python

Neste tutorial, você aprenderá exclusivamente sobre as instruções if else do Python.
Actualizado 25 de out. de 2024  · 9 min de leitura

Declarações IF, ELIF e ELSE do Python

Ao escrever código em qualquer linguagem, você terá de controlar o fluxo do programa. Esse é geralmente o caso quando há uma tomada de decisão envolvida - você desejará executar uma determinada linha de códigos se uma condição for satisfeita, e um conjunto diferente de códigos caso não seja. Em Python, você tem as instruçõesif, elif e else para essa finalidade. Neste tutorial, você trabalhará com um exemplo para aprender sobre a instrução if simples e, gradualmente, passará para as instruções if-else e if-elif-else. Você também aprenderá sobre aninhamento e verá um exemplo de if aninhado. Vamos começar....

Declaração if simples

Esse é o exemplo mais simples de uma declaração condicional. A sintaxe é:

if(condition):
      indented Statement Block

O bloco de linhas com o mesmo recuo após os dois pontos (:) será executado sempre que a condição for VERDADEIRA.

Declarações IF, ELIF e ELSE do Python
Fonte: python by Programiz

Por exemplo, digamos que você esteja registrando a pontuação de um determinado curso. A pontuação total é 100, com 50 pontos para o trabalho teórico e 50 para o prático. Você deseja exibir uma mensagem de erro ou aviso se a pontuação exceder 100.

score_theory = 40
score_practical = 45
if(score_theory + score_practical > 100):
    print("Invalid score. Please check the input.")

Os dois pontos (:) são importantes porque separam a condição das instruções a serem executadas após a avaliação da condição. Isso é especialmente importante para declarações em que há apenas uma única declaração e o colchete ( ) não é usado. Por exemplo:

score_theory = 40
score_practical = 45
if score_theory + score_practical > 100: # End of condition
    print("Invalid score. Please check the input.")

A instrução if acima verifica a condição 'if' e determina que a instrução (40 + 45 = 85) > 100 é FALSA e, portanto, não imprimirá o aviso. Vamos tornar a afirmação FALSA e ver o que acontece:

score_theory = 50
score_practical = 55
if(score_theory + score_practical >= 100):
    print("Invalid score. Please check the input.")
Invalid score. Please check the input.

Digamos que você queira ir um pouco além e exibir uma declaração quando a pontuação total estiver realmente dentro do intervalo, ou seja, menor que 100. É nesse momento que a instrução if-else pode ajudar.

Teste único: declaração if-else

A instrução if-else é usada para codificar da mesma forma que você a usaria no idioma inglês. A sintaxe da instrução if-else é a seguinte:

if(condition):
      Indented statement block for when condition is TRUE
else:
      Indented statement block for when condition is FALSE

Declarações IF, ELIF e ELSE do Python
Fonte: python by Programiz

Vamos tentar trabalhar com o código acima e redefinir o problema: Ao registrar a pontuação de determinados trabalhos do curso, você deve somar os pontos da parte teórica e da parte prática para obter a pontuação total. Se a pontuação total for inferior a 100, você deseja exibir uma mensagem de "Pontuação correta" e, se não for, um aviso como antes.

score_theory = 40
score_practical = 45
if(score_theory + score_practical > 100):
    print("Please check the input. Score exceeds total possible score.")
else:
    print("Score validated. Your total is: ", score_theory + score_practical)
Score validated. Your total is:  85

Dica: Se você tiver apenas uma linha de código a ser executada em vez de várias linhas no código que segue a condição, poderá colocar tudo na mesma linha. Isso não é uma regra, mas apenas uma prática comum entre os codificadores. Reescrevendo o código acima nesse estilo:

score_theory = 40
score_practical = 45
# Single statement: if(condition): Statement for when condition is true
if (score_theory + score_practical > 100): print("Please check the input. Score exceeds total possible score.")
# Single statement: if(condition): Statement for when condition is false
else: print("Score validated. Your total is: ", score_theory + score_practical)
Score validated. Your total is:  85

Agora imagine um caso em que uma das pontuações exceda 50, mas o total ainda seja inferior a 100. O que você acha que aconteceria então?

score_theory = 60
score_practical = 40
if(score_theory + score_practical > 100):
    print("Please check the input. Score exceeds total possible score.")
else:
    print("Score validated. Your total is: ", score_theory + score_practical)
Score validated. Your total is:  100

Isso está errado, pois você sabe que o limite máximo de pontuação individual para teoria ou prática não deve exceder 50. Como você pode representar isso no código? A resposta: declaração if-elif-else.

Testes múltiplos: Declaração if-elif-else do Python

Vamos detalhar o problema que temos até o momento e tentar enquadrá-lo em palavras antes de entrarmos no código.

  • Etapa 1. Insira as duas pontuações: score_theory e score_practical

  • Etapa 2. Verifique se nenhuma das pontuações excede a pontuação máxima possível, ou seja, 50. Isso também resolve o problema de a pontuação total não exceder 10. Se qualquer um deles for maior que 50, exiba o aviso e saia.

    • 2.1 Verifique se score_theory
    • 2.2 Verifique se score_practical
  • Etapa 3. Se nenhum dos dois exceder a pontuação, exiba a mensagem "Score okay" e saia.

# Step 1
score_theory = 60
score_practical = 20

if(score_theory > 50):
    print("Please check the input score for 'Theory'.") # Step 2.1
elif(score_practical > 50):
    print("Please check the input score for 'Practical'.")  # Step 2.2
else:
    print("Score validated. Your total is: ",score_theory + score_practical) # Step 3
Please check the input score for 'Theory'.

A sintaxe seguida pela instrução if-else-if é:

if(Condition1):
      Indented statement block for Condition1
elif(Condition2):
       Indented statement block for Condition2
else:
       Alternate statement block if all condition check above fails

Declarações IF, ELIF e ELSE do Python
Fonte: python by Programiz

De fato, uma maneira elaborada de ver o efeito da instrução if-elif-else do Python como apenas uma instrução if-else é escrevê-la como abaixo:

score_theory = 60
score_practical = 20

if(score_theory > 50):
    print("Please check the input score for 'Theory'.")
else:
    if(score_practical > 50):
        print("Please check the input score for 'Practical'.")  
    else:
        print("Score validated. Your total is: ",score_theory + score_practical)
Please check the input score for 'Theory'.

Na verdade, a instrução elif facilita a escrita do código. Imagine se a declaração do problema se tornasse mais complexa e você pudesse acompanhar cada declaração if-else dentro de outra declaração if, o que poderia facilmente se tornar um pesadelo!

Vamos trabalhar mais um pouco com o mesmo exemplo. Agora, imagine que você queira manter um controle de vários cursos, por exemplo: "Ciências" e "Inglês". A pontuação total para ambos ainda é a mesma, ou seja, 100. No entanto, para Ciências, a divisão entre teoria e prática é 50-50, mas para Inglês, a divisão é 60-40. Você ainda pode usar os formatos acima?

SIM! E você pode fazer isso facilmente com o conceito de declarações if aninhadas

Declarações if aninhadas em Python

Quando você tem uma instrução if dentro de outra instrução if, isso é chamado de aninhamento no mundo da programação. Não precisa ser sempre uma simples instrução if, mas você pode usar o conceito de instruções if, if-else e até if-elif-else combinadas para formar uma estrutura mais complexa.

Vamos codificar o exemplo discutido acima:

coursework = "English"
score_theory = 53
score_practical = 35

if(coursework == "Science" or coursework == "science"):
    if(score_theory > 50):
        print("Please check the input score for 'Science: Theory'.")
    elif(score_practical > 50):
            print("Please check the input score for 'Science: Practical'.")  
    else:
        print("Score validated for Science. Your total is: ",score_theory + score_practical)             
elif(coursework == "English" or coursework == "english"):
    if(score_theory > 60):
        print("Please check the input score for 'English: Theory'.")
    elif(score_practical > 40):
            print("Please check the input score for 'English: Practical'.")  
    else:
        print("Score validated for English. Your total is: ",score_theory + score_practical)
else: print("Coursework not recognised. Please enter score for either Science or English.")
Score validated for English. Your total is:  88

Você notou o uso de or no código acima? Ele é usado para avaliar "Science" e "science" como o mesmo trabalho de curso, e o mesmo vale para "English" e "english". Você pode usar declarações booleanas, como or e and, para combinar várias condições. Mas você precisa ter o cuidado de entender a saída booleana dessas instruções combinadas para compreender totalmente o fluxo de controle do seu programa.

Podemos reescrever o código acima para verificar as pontuações na mesma instrução; no entanto, isso torna o código difícil de ler e as instruções, às vezes, difíceis de depurar.

coursework = "English"
score_theory = 53
score_practical = 78

if(coursework == "Science" or coursework == "science"):
    if(score_theory > 50 or score_practical > 50):
        # Can't distinguish the error in Science: theory or Science: Practical
        print("Please check the input score for Science.")
    else: print("Score validated for Science. Your total is: ",score_theory + score_practical)             
elif(coursework == "English" or coursework == "english"):
    if(score_theory > 60 or score_practical > 40):
        # Can't distinguish the error in English: theory or English: Practical
        print("Please check the input score for English.")
    else: print("Score validated for English. Your total is: ",score_theory + score_practical)
else: print("Coursework not recognised. Please enter score for either Science or English.")
Please check the input score for English.

Voila!

Neste tutorial, você abordou um dos principais mecanismos de fluxo de controle disponíveis no Python. Você trabalhou com um exemplo em vários níveis para ver as variações da humilde instrução if em ação. Para saber mais sobre Python, confira o curso Intro to Python for Data Science do DataCamp.

Perguntas frequentes sobre Python IF, ELIF e ELSE

O que é a instrução if em Python?

A instrução if é usada para executar um bloco de código se uma determinada condição for verdadeira.

Como faço para usar a instrução elif em Python?

A instrução elif (abreviação de "else if") é usada para especificar condições adicionais a serem testadas após a instrução if inicial. Se a condição da instrução if for falsa e a condição da instrução elif for verdadeira, o bloco de código associado à instrução elif será executado.

Posso ter várias instruções elif em um único bloco if?

Sim, você pode ter várias declarações elif em um único bloco if.

O que é a instrução else em Python?

O comando else é usado para especificar um bloco de código que deve ser executado se nenhuma das condições dos comandos if e elif anteriores for verdadeira.

Posso usar a instrução else sem nenhuma instrução if ou elif?

Não, a declaração else deve ser usada em conjunto com uma declaração if. Ele não pode ser usado sozinho.

Temas

Cursos de Python

curso

Introduction to Python

4 hr
6M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

tutorial

Tutorial de indexação de lista Python()

Neste tutorial, você aprenderá exclusivamente sobre a função index().
Sejal Jaiswal's photo

Sejal Jaiswal

6 min

tutorial

Operadores em Python

Este tutorial aborda os diferentes tipos de operadores em Python, sobrecarga de operadores, precedência e associatividade.
Théo Vanderheyden's photo

Théo Vanderheyden

9 min

tutorial

Tutorial de funções Python

Um tutorial sobre funções em Python que aborda como escrever funções, como chamá-las e muito mais!
Karlijn Willems's photo

Karlijn Willems

14 min

tutorial

Tutorial de strings em Python

Neste tutorial, você aprenderá tudo sobre as cadeias de caracteres do Python: fatiamento e encadeamento, manipulação e formatação com a classe Formatter, cadeias de caracteres f, modelos e muito mais!
Sejal Jaiswal's photo

Sejal Jaiswal

16 min

tutorial

Programação orientada a objetos em Python (OOP): Tutorial

Aborde os fundamentos da programação orientada a objetos (OOP) em Python: explore classes, objetos, métodos de instância, atributos e muito mais!
Théo Vanderheyden's photo

Théo Vanderheyden

12 min

tutorial

Tutorial de Python

Em Python, tudo é objeto. Números, cadeias de caracteres (strings), DataFrames, e até mesmo funções são objetos. Especificamente, qualquer coisa que você usa no Python tem uma classe, um modelo associado por trás.
DataCamp Team's photo

DataCamp Team

3 min

Ver maisVer mais