Lição 2: Desvios condicionais, fazendo seu programa tomar decisões!

Olá pessoa!

Se você está acompanhando esta série, já deve ter aprendido o básico sobre Python as variáveis e tipos do Python!

Que tal continuar?

Este post faz parte de uma série! Para visualizar a série inteira clique aqui.

Agora que você já viu os tipos básicos e já trabalhou bastante com valores lógicos, iremos introduzir uma complexidade para nossos programas. Criaremos um desvio condicional, ou seja, vamos fazer com que o programa siga por um caminho ou outro de acordo com uma condição.

Assim como quase tudo que venho falando por aqui, a sintaxe para criar um desvio condicional em Python é bastante simples.

A primeira coisa que precisamos entender é: quando falamos de uma a condição, significa que precisamos saber se algo é verdade ou mentira, ou seja, precisamos utilizar um tipo lógico.

A ideia por trás dos desvios condicionais é utilizada o tempo todo em nossas conversas do dia-a-dia, veja este exemplo:

Vá até o mercado e compre leite, se não tiver, compre água.

Veja o raciocínio por trás! Precisamos checar se o mercado tem leite em estoque, se ele tiver vamos comprá-lo, mas caso não tenha, vamos comprar água.

Como Python utiliza o inglês como idioma padrão a condição se é traduzida para o comando if, veja:

leite_em_estoque = True

if leite_em_estoque:
    print("Comprei leite")
else:
    print("Comprei água")

Execute este algoritmo, depois altere o valor da variável para False e execute-o novamente!

Viu só? Agora podemos fazer os algoritmos tomarem decisões!

Você precisa utilizar o comando else para o caso negativo, ele seria o equivalente à um “senão”, ou seja: se condição entao faça x senao faça y.

Perceba também que após a condição é necessário colocar os dois pontos, isso é necessário para a sintaxe do Python.

Vamos fazer mais um exemplo!

  • Crie uma variável numérica para representar uma nota de uma prova, depois disso exiba a mensagem “Aprovado” caso a nota seja maior ou igual à 7, caso contrário exiba a mensagem “Reprovado”.
Cuidado com Spoiler
nota = 5

if nota >= 7:
    print("Aprovado")
else:
    print("Reprovado")

Neste caso você pode optar por duas abordagens distintas: salvar o resultado da comparação em uma variável lógica e comparar ela ou utilizar a expressão diretamente no comando if.

Geralmente é mais comum utilizarmos a expressão diretamente no comando, salvo em casos onde esta mesma comparação precisa ser feita mais de uma vez, nestes casos é melhor armazenarmos o resultado e reutilizá-lo ao invés de fazer a comparação várias vezes.

Também acontece precisarmos tratar mais de dois casos, ou seja, há situações em que um se e um senao não são suficientes para atender todas as condições, veja este exemplo: Um aluno que tira acima de 7 já está aprovado, se tirar 7 ou 6 ele irá para recuperação e abaixo disso estará reprovado. Como fazer?

nota = 6
if nota > 7:
    print ("Aprovado")
else:
    if nota == 7 or nota == 6:
        print("Recuperacao")
    else:
        print ("Reprovado")

Você pode colocar vários comandos if e else aninhados, ou seja, um dentro do outro. Este código funcionará sem problemas, mas isso não significa que esta é a melhor forma de fazer isso.

Para casos onde é necessário uma expressão: senão se, utilize o comando elif. Este comando é uma mescla dos dois anteriores. Ele funciona como um if, mas só será testado caso o if anterior ter resultado em False, veja:

if nota > 7:
    print ("Aprovado")

elif nota == 7 or nota == 6:
     print("Recuperacao")

else:
     print ("Reprovado")

Este exemplo é bastante simples, mas já dá para entendermos a utilização do elif. É importante ressaltar também que este comando de desvio permite apenas um if e um else que estejam conectados, mas é você pode inserir quantos elif forem necessários.

Valores confiáveis

Outro conceito interessante no Python é a questão dos Truthy values, este conceito define quando os valores são confiáveis, ou verdadeiros para uso. Por exemplo, no caso de um número, qualquer valor que seja diferente de zero é um valor confiável (incluindo números negativos).

O mesmo se aplica para textos (strings), qualquer texto diferente de vazio é considerado como confiável, ou seja, apenas o valor “” não é.

Esta funcionalidade permite que a variável seja avaliada diretamente, sem precisarmos fazer a comparação, veja o exemplo com um valor inteiro:

valor = 4

if valor != 0:
    print("Valor não é zero")

if valor:
    print("Valor não é zero")

Os dois códigos irão fazer a mesma coisa, mas a segunda forma é ainda mais simples! O mesmo serve para as strings:

texto = "teste"

if texto != "":
    print("Texto não está vazio")

if texto:
    print("Texto não está vazio")

Outra coisa que podemos explorar normalmente é a questão de múltiplas condições. Podemos utilizar os operadores os operadores not, and e or para criar uma condição da mesma forma que usamos para a atribuição de um valor lógico.

nota1 = 7
nota2 = 10

if nota1 > 5 and nota2 >= 7:
    print("Aprovado")

deu_sol = True

if not deu_sol:
    print("Choveu")

Por fim, existe mais uma forma de descrevermos o comando if. Esta outra forma é conhecida como condição ternária. Ela é utilizada principalmente para condições curtas e permite uma sintaxe mais ágil, geralmente de uma única linha.

A ordem das coisas muda um pouco, mas ainda se parece bastante com linguagem natural. Veja esta frase:

  • Ele foi aprovado se tirou 7 ou mais, senão ele foi reprovado.

Vamos traduzir isso para Python com o comando que já conhecemos:

nota = 6
if nota >= 7:
    print("Aprovado")
else:
    print("Reprovado")

Agora veja como esta mesma operação fica ao utilizarmos uma condição ternária

nota = 6
print( "Aprovado" if nota >= 7 else "Reprovado" z )

A ordem das palavras muda um pouco, mas não se assuste, vamos com calma que logo você se acostuma.

Vamos Praticar!

  • Faça um algoritmo que solicite 3 notas para o usuário, calcule a média e indique se o aluno foi aprovado ou reprovado (nota precisar ser maior ou igual à sete para o aluno ser aprovado).

  • Faça um algoritmo que solicite o ano que o usuário nasceu, depois disso, faça o programa descrever se o usuário fará ou já fez 18 anos neste ano.

  • Faça um programa que solicite ao usuário sua idade, depois disso, exiba a classificação etária de acordo com as faixas de valores:
    • Criança para 0 até 11 anos;
    • Adolescente para 12 até 18 anos;
    • Jovem para 19 até 24 anos;
    • Adulto para 25 até 40 anos;
    • Meia Idade para 41 até 60 anos;
    • Idoso acima de 60 anos.
  • Faça um programa que solicite ao usuário 2 valores, utilize uma condição ternária para escrever qual o maior valor: o primeiro ou o segundo (caso os valores sejam iguais, considere o segundo).

Atenção

É fortemente recomendado que você tente fazer os exercícios antes de ver as respostas. Você pode encontrar as respostas aqui, elas estão bem no fim no arquivo.

O que achou do post? - Pratique mais até o próximo post da série!

Me conte nos comentários!

E Até mais!

Sempre vale lembrar que as informações e textos aqui no blog representam minha opinião pessoal, o que pode não ser igual à sua ou de qualquer outra pessoa, incluindo a empresa para qual eu trabalho. Portanto as publicações inseridas aqui estão relacionadas somente a mim.

Assine a Newsletter