Controlar o fluxo de código com lógica condicional (se, elif, else)

Concluído(a)

Dica

Consulte a guia Texto e imagens para obter mais detalhes!

Agora que seu programa pode avaliar as condições, você pode usá-las para orientar os caminhos que seu código pode seguir. Python usa if, elife else instruções para orientar o fluxo do seu programa com base nos resultados True ou False. Essa abordagem é chamada de lógica condicional.

A instrução if

Uma instrução if executa um bloco de código somente quando uma condição é True. O código dentro deve ser recuado— Python usa recuo para saber quais linhas pertencem ao bloco:

score = 85

if score >= 90:
    print("Congratulations!")
    print("Grade: A")

print("Program complete.")

Se score for menor que 90, o código recuado dentro do if bloco será ignorado e o programa continuará com a próxima linha após o bloco.

Regras de recuo e dois-pontos

Python usa regras rígidas para agrupar blocos de código:

  1. Dois-pontos (:): Você deve colocar dois-pontos no final de uma instrução condicional. Isso informa Python que as próximas linhas recuadas pertencem a esse bloco condicional.

  2. Recuo: Cada linha no mesmo bloco deve usar o mesmo recuo. Use quatro espaços (ou uma guia) consistentemente.

Para concluir o bloco de código, você deve desabilitar a próxima linha após o bloco. Essa linha não recuada sinaliza para Python que o bloco terminou. No exemplo acima, a linha print("Program complete.") é desindenada, portanto, ela é executada independentemente da if condição.

Adicionando caminhos alternativos com outro

Use else para executar um bloco de código diferente quando a condição for False:

score = 75

if score >= 90:
    print("Grade: A")
else:
    print("Grade: B or lower")

Condições de encadeamento com elif

Quando você tiver mais de dois caminhos possíveis, poderá usar elif (abreviação de "else if") para verificar condições extras.

Primeira partida vence

Python verifica cada condição em ordem. Quando encontra a primeira True condição, ela executa esse bloco e ignora o restante. Se nenhuma das condições estiver True, ele executará o else bloco (se presente).

score = 85

if score >= 90:
    print("Grade: A")
elif score >= 80:     # Python stops here! 85 >= 80 is True.
    print("Grade: B")
elif score >= 70:     # Skipped entirely, even though 85 >= 70 is also true.
    print("Grade: C")
else:                 # Skipped entirely.
    print("Grade: D or lower")

Output:

Grade: B

Como Python sai da cadeia após a primeira True condição, certifique-se de ordenar suas condições da mais específica para a menos específica. Caso contrário, talvez você nunca alcance as condições esperadas.