Enviar um café pro programador

Mostrando postagens com marcador ELIF. Mostrar todas as postagens
Mostrando postagens com marcador ELIF. Mostrar todas as postagens

Vídeo Aula 13 - O comando ELSE do teste condicional IF-ELSE

 No tutorial anterior, aprendemos a usar o teste condicional IF em Python. Daremos sequencia nesses estudos de testes para aprender o comando ELSE. Mas, antes, vamos relembrar o teste condicional IF.

Assista no Youtube nossa vídeo aula, e nos ajude dando like e se inscrevendo no canal Programação Progressiva:


O Teste Condicional IF em Python

Ele serve para testar uma condição (uma comparação ou mesmo apenas um valor), e caso o retorno desse teste seja verdadeiro (TRUE), ele executa um bloco específico de código. Caso seja falso (FALSE), ele não executa aquele código dentro do IF.

Por exemplo, o seguinte código pede a idade do usuário e avisa se ele é maior de idade ou não:

idade = int( input("Digite sua idade: " ) ) if (idade>=18): print("Você é maior de idade")

Mas veja que ele só avisa se é de maior. E se for de menor? Bem, aí fazemos outro teste condicional abaixo, testando sempre a condição oposta.

Se antes, testamos se tinha 18 ou mais, agora vamos testar se tem menos de 18:


idade = int( input("Digite sua idade: " ) ) if (idade>=18): print("Você é maior de idade") if (idade<18): print("Você é menor de idade")


E aí que vai entrar o ELSE.

O Teste Condicional ELSE em Python

Programador é preguiçoso, mas no bom sentido.

O resultado de uma comparação só pode ser TRUE ou FALSE, e o IF vai verificar e capturar sempre uma comparação verdadeira.

Então, adivinha: o que o ELSE vai fazer ?
Ele vai rodar um determinado trecho de código, caso o resultado do teste condicional seja FALSO.

Veja bem, ele vai usar o teste condicional do IF, logo, ele não vai precisar testar nada mais além daquilo.

Então, nosso código vai ficar assim:


idade = int( input("Digite sua idade: " ) ) if (idade>=18): print("Você é maior de idade") else: print("Você é menor de idade")


Não esqueça dos dois pontos, nem de alinhar o ELSE com seu IF.

Importante:

Cada else pertence somente a um IF, na qual está alinhado (identado)


Exercício

No exemplo anterior, o IF captura se o usuário tem 18 anos ou mais. Como ficaria o código para o IF filtrar quem é de menor, e deixar a mensagem de maioridade para o ELSE ?


Algoritmo: Verificar se um número é par

Em nossa vídeo-aula sobre operadores matemáticos em Python, vimos que o operador % nos fornece o resto da divisão de um número inteiro positivo por outro, e da escolinha, sabemos que os números pares deixam resto 0.

Então, já podemos criar um script de um algoritmo que pede um número inteiro ao usuário e diz se ele é par ou ímpar:

num = int( input("Digite um inteiro positivo: ") ) if (num%2 == 0): print("Par") else: print("Ímpar")

Exercícios em Python: IF, ELIF e ELSE

1. Faça um Programa que verifique se uma letra digitada é vogal ou consoante.
Código comentado



2. Faça um programa que pede duas notas de um aluno. Em seguida ele deve calcular a média do aluno e dar o seguinte resultado:

    A mensagem "Aprovado", se a média alcançada for maior ou igual a sete;
    A mensagem "Reprovado", se a média for menor do que sete;
    A mensagem "Aprovado com Distinção", se a média for igual a dez.
Exercício resolvido


3. Faça um Programa que leia três números inteiros e mostre o maior deles.
Questão resolvida


4. Faça um Programa que leia três números inteiros, em seguida mostre o maior e o menor deles.
Código comentado



5. Faça um programa que pede dois inteiro e armazene em duas variáveis. Em seguida, troque o valor das variáveis e exiba na tela
Trocar (inverter) valores de duas variáveis


6. Faça um Programa que leia três números e mostre-os em ordem decrescente.
Três números em ordem decrescente


7. Faça um Programa que pergunte em que turno você estuda. Peça para digitar M-matutino ou V-Vespertino ou N- Noturno. Imprima a mensagem "Bom Dia!", "Boa Tarde!" ou "Boa Noite!" ou "Valor Inválido!", conforme o caso.


8. As Organizações Tabajara resolveram dar um aumento de salário aos seus colaboradores e lhe contrataram para desenvolver o programa que calculará os reajustes.

Faça um programa que recebe o salário de um colaborador e o reajuste segundo o seguinte critério, baseado no salário atual:

    salários até R$ 280,00 (incluindo) : aumento de 20%
    salários entre R$ 280,00 e R$ 700,00 : aumento de 15%
    salários entre R$ 700,00 e R$ 1500,00 : aumento de 10%
    salários de R$ 1500,00 em diante : aumento de 5% Após o aumento ser realizado, informe na tela:
    o salário antes do reajuste;
    o percentual de aumento aplicado;
    o valor do aumento;
    o novo salário, após o aumento.
Código comentado



9. Faça um programa para o cálculo de uma folha de pagamento, sabendo que os descontos são do Imposto de Renda, que depende do salário bruto (conforme tabela abaixo) e 3% para o Sindicato e que o FGTS corresponde a 11% do Salário Bruto, mas não é descontado (é a empresa que deposita). O Salário Líquido corresponde ao Salário Bruto menos os descontos. O programa deverá pedir ao usuário o valor da sua hora e a quantidade de horas trabalhadas no mês.

    Desconto do IR:
    Salário Bruto até 900 (inclusive) - isento
    Salário Bruto até 1500 (inclusive) - desconto de 5%
    Salário Bruto até 2500 (inclusive) - desconto de 10%
    Salário Bruto acima de 2500 - desconto de 20% Imprima na tela as informações, dispostas conforme o exemplo abaixo. No exemplo o valor da hora é 5 e a quantidade de hora é 220.

    Salário Bruto: (5 * 220)        : R$ 1100,00
    (-) IR (5%)                                : R$   55,00 
    (-) INSS ( 10%)                       : R$  110,00
    FGTS (11%)                            : R$  121,00
    Total de descontos                : R$  165,00
    Salário Liquido                       : R$  935,00


10. Faça um Programa que leia um número e exiba o dia correspondente da semana. (1-Domingo, 2- Segunda, etc.), se digitar outro valor deve aparecer valor inválido.


11.Faça um programa que lê as duas notas parciais obtidas por um aluno numa disciplina ao longo de um semestre, e calcule a sua média. A atribuição de conceitos obedece à tabela abaixo:

      Média de Aproveitamento  Conceito
      Entre 9.0 e 10.0                      A
      Entre 7.5 e 9.0                        B
      Entre 6.0 e 7.5                        C
      Entre 4.0 e 6.0                        D
      Entre 4.0 e zero                      E
    O algoritmo deve mostrar na tela as notas, a média, o conceito correspondente e a mensagem “APROVADO” se o conceito for A, B ou C ou “REPROVADO” se o conceito for D ou E.

12. Faça um Programa que peça os 3 lados de um triângulo. O programa deverá informar se os valores podem ser um triângulo. Indique, caso os lados formem um triângulo, se o mesmo é: equilátero, isósceles ou escaleno.

    Dicas:
    Três lados formam um triângulo quando a soma de quaisquer dois lados for maior que o terceiro;
    Triângulo Equilátero: três lados iguais;
    Triângulo Isósceles: quaisquer dois lados iguais;
    Triângulo Escaleno: três lados diferentes;
    Código comentado: Triângulos em Python


13. Faça um programa que calcule as raízes de uma equação do segundo grau, na forma ax² + bx + c. O programa deverá pedir os valores de a, b e c e fazer as consistências, informando ao usuário nas seguintes situações:

    Se o usuário informar o valor de A igual a zero, a equação não é do segundo grau e o programa não deve fazer pedir os demais valores, sendo encerrado;
    Se o delta calculado for negativo, a equação não possui raizes reais. Informe ao usuário e encerre o programa;
    Se o delta calculado for igual a zero a equação possui apenas uma raiz real; informe-a ao usuário;
    Se o delta for positivo, a equação possui duas raiz reais; informe-as ao usuário;

PS: digite 'import math' no início de seu script. Para achar a raiz quadrada da variável x, faça: math.sqrt(x)
Código comentado das raízes de uma equação do segundo grau


14. Faça um Programa que peça um número correspondente a um determinado ano e em seguida informe se este ano é ou não bissexto.
Achar ano bissexto


15. Faça um Programa que peça uma data no formato dd/mm/aaaa e determine se a mesma é uma data válida.
Validação de data em Python


16. Faça um Programa que peça um número inteiro e determine se ele é par ou ímpar. Dica: utilize o operador módulo (resto da divisão): %
Par ou Ímpar em Python


17. Faça um Programa que leia um número inteiro menor que 1000 e imprima a quantidade de centenas, dezenas e unidades do mesmo.
Observando os termos no plural a colocação do "e", da vírgula entre outros. Exemplo:

326 = 3 centenas, 2 dezenas e 6 unidades
12 = 1 dezena e 2 unidades Testar com: 326, 300, 100, 320, 310,305, 301, 101, 311, 111, 25, 20, 10, 21, 11, 1, 7 e 16
Achar unidade, dezena, centena...de um número em Python


18. Faça um Programa para um caixa eletrônico. O programa deverá perguntar ao usuário a valor do saque e depois informar quantas notas de cada valor serão fornecidas. As notas disponíveis serão as de 1, 5, 10, 50 e 100 reais. O valor mínimo é de 10 reais e o máximo de 600 reais. O programa não deve se preocupar com a quantidade de notas existentes na máquina.

    Exemplo 1: Para sacar a quantia de 256 reais, o programa fornece duas notas de 100, uma nota de 50, uma nota de 5 e uma nota de 1;
    Exemplo 2: Para sacar a quantia de 399 reais, o programa fornece três notas de 100, uma nota de 50, quatro notas de 10, uma nota de 5 e quatro notas de 1.
Contagem de cédulas de um caixa eletrônico

19.Faça um Programa que peça um número e informe se o número é inteiro ou decimal. Dica: utilize uma função de arredondamento.
Arredondar números em Python

20. Faça um Programa que leia 2 números e em seguida pergunte ao usuário qual operação ele deseja realizar. O resultado da operação deve ser acompanhado de uma frase que diga se o número é:

    par ou ímpar;
    positivo ou negativo;
    inteiro ou decimal.


21. Faça um programa que faça 5 perguntas para uma pessoa sobre um crime. As perguntas são:
    "Telefonou para a vítima?"
    "Esteve no local do crime?"
    "Mora perto da vítima?"
    "Devia para a vítima?"
    "Já trabalhou com a vítima?" O programa deve no final emitir uma classificação sobre a participação da pessoa no crime. Se a pessoa responder positivamente a 2 questões ela deve ser classificada como "Suspeita", entre 3 e 4 como "Cúmplice" e 5 como "Assassino". Caso contrário, ele será classificado como "Inocente".


22. Um posto está vendendo combustíveis com a seguinte tabela de descontos:
    Álcool: até 20 litros, desconto de 3% por litro
    acima de 20 litros, desconto de 5% por litro

    Gasolina:
    até 20 litros, desconto de 4% por litro
    acima de 20 litros, desconto de 6% por litro Escreva um algoritmo que leia o número de litros vendidos, o tipo de combustível (codificado da seguinte forma: A-álcool, G-gasolina), calcule e imprima o valor a ser pago pelo cliente sabendo-se que o preço do litro da gasolina é R$ 2,50 o preço do litro do álcool é R$ 1,90.


23. Uma fruteira está vendendo frutas com a seguinte tabela de preços:
                          Até 5 Kg                 Acima de 5 Kg
    Morango         R$ 2,50 por Kg          R$ 2,20 por Kg
    Maçã              R$ 1,80 por Kg          R$ 1,50 por Kg
    Se o cliente comprar mais de 8 Kg em frutas ou o valor total da compra ultrapassar R$ 25,00, receberá ainda um desconto de 10% sobre este total. Escreva um algoritmo para ler a quantidade (em Kg) de morangos e a quantidade (em Kg) de maças adquiridas e escreva o valor a ser pago pelo cliente.


24. O Hipermercado Tabajara está com uma promoção de carnes que é imperdível. Confira:
                          Até 5 Kg               Acima de 5 Kg
    File Duplo      R$ 4,90 por Kg          R$ 5,80 por Kg
    Alcatra           R$ 5,90 por Kg          R$ 6,80 por Kg
    Picanha          R$ 6,90 por Kg          R$ 7,80 por Kg
    Para atender a todos os clientes, cada cliente poderá levar apenas um dos tipos de carne da promoção, porém não há limites para a quantidade de carne por cliente. Se compra for feita no cartão Tabajara o cliente receberá ainda um desconto de 5% sobre o total a compra. Escreva um programa que peça o tipo e a quantidade de carne comprada pelo usuário e gere um cupom fiscal, contendo as informações da compra: tipo e quantidade de carne, preço total, tipo de pagamento, valor do desconto e valor a pagar.

Exercício usando ELIF em Python - Conversão de notas A, B, C, D e F

Agora que já aprendemos a instrução ELIF do Python, vamos usá-la para resolver um problema bem interessante.

Sabe aquelas notas dos filmes americanos, A, B, C ?
Um aluno tipo Stiffler tirando F e sendo reprovado?

Vamos aprender a fazer essa conversão, desse sistema para o nosso.


Exercício de ELIF em Python

Crie um programa em Python que peça a nota do aluno, que deve ser um float entre 0.00 e 10.0

Se a nota for menor que 6.0, deve exibir a nota F.
Se a nota for de 6.0 até 7.0, deve exibir a nota D.
Se a nota for entre 7.0 e 8.0, deve exibir a nota C.
Se a nota for entre 8.0 e 9.0, deve exibir a nota B.

Por fim, se for entre 9.0 e 10.0, deve exibir um belo de um A.




Código comentado usando ELIF

Inicialmente, usamos a função float() no input, para pegar o número decimal.
Devemos lembrar em computação não usamos vírgula, e sim ponto.

No Brasil, usamos 1,99
Em computação, deveríamos escrever 1.99
Use o ponto!

Após pegar a nota do usuário, vamos aos testes.
Se essa nota for menor que 6.0, mandamos um F, sem choro nem vela.
Acaba aí o programa.

Caso não seja, cai dentro de um ELIF, onde vamos fazer mais testes.
Se for menor que 7.0, significa que é menor que 7.0 e maior que 6.0, logo, exibimos um D.

Se não a nota não for menor que 7.0, vamos para mais um ELIF.
Se for menor que 8.0, então vai ser menor que 8.0 e maior que 7.0, logo é uma nota C que iremos exibir.

Se a nota não for menor que 8.0, vai dentro do último ELIF.
Então, é menor que 9.0 e maior que 8.0, por tanto é uma nota B.

Então, só a resta a nota ser maior que 9.0
Nesse caso, cai no ELSE e então exibimos a nota A !

Veja nosso código:

resposta=float(input('Qual a nota [0.0 - 10.0]: '))

if resposta < 6.0:
    print('Nota F')
elif resposta < 7.0:
    print('Nota D')
elif resposta < 8.0:
    print('Nota C')
elif resposta < 9.0:
    print('Nota B')
else:
    print('Nota A')

A instrução ELIF em Python

Em nosso Curso de Python Grátis, já aprendemos a usar o teste condicional IF, a dupla IF ELSE e até estudamos IF e ELSE aninhados, além de resolver exercícios bem interessantes sobre o assunto.

Já estamos quase experts na arte dos testes condicionais, ou controle de fluxo...enfim, nesse treco de fazer teste, IF, ELSE e tal.

Agora, chegou nossa última lição no assunto: a instrução ELIF.
Ela não vai nos dar nenhuma informação nova não, pelo contrário, vem pra facilitar nossa vida!




Testes, Testes e Mais Testes

Uma das instruções, em computação, mais executadas, sem dúvidas é o teste condicional. Seja lá a linguagem que usou pra fazer um programa, está entupido de testes.

Desde o momento que liga seu computador ou celular, milhões e milhões de testes condicionais ocorrem.

Clicou em um botão? Teste. Acontece isso.
Clicou em outro botão? Teste. Acontece aquilo.
Digitou certo a senha? Teste. Entra no e-mail.
Digitou errado a senha? Teste. Diz que tá errada.

O navegador que está usando para ler nossa apostila de Python online?
Tá cheeeeeeio de IF e ELSE.

Tá ouvindo música em algum aplicativo do celular?
Tá entupidaaaaaaço de IF e ELSE.

Pode parecer bobinhos os exemplos de Corinthians e Flamengo de nossos exemplos, mas quando for programador profissional, vai ver que vai continuar usando eles, e do mesmo jeito que aprendeu aqui no Python Progressivo.

Pois bem, se convenceu da importância deles?
IF e ELSE já moram no seu coração ?

Ok, vamos melhorar o uso deles, aprender a usar o ELIF.



Exercício de Python com (muitos) IF e ELSE

A seguir, temos a tabela dos melhores times de 2018, da CBF.
Você deve criar um programa que pede 'Digite um número de 1 até 10', e de acordo com o número fornecido pelo usuário, indicar qual o time está naquela posição do ranking.


ELIF - O que é ?

Por exemplo, a pessoa digita 1. O resultado é 'Palmeiras'.
Digitou 2, deve printar 'Cruzeiro' etc.

Resolução:
O código é bem simples, basta fazermos uma série de IF e ELSE, nosso código fica:

resposta=int(input('Que colocação no ranking deseja saber: '))

if resposta == 1:
    print('Palmeiras! Vai porco!')
else:
    if resposta == 2:
          print('Cruzeiro')
    else:
        if resposta == 3:
            print('Grêmio')
        else:
            if resposta == 4:
                print('Santos')
            else:
                if resposta == 5:
                    print('Atlético-MG! Vai galo!')
                else:
                    if resposta == 6:
                        print('Timão!')
                    else:
                        if resposta == 7:
                            print('Mengo!')
                        else:
                            if resposta == 8:
                                print('Botafogo')
                            else:
                                if resposta == 9:
                                    print('Atlétito-PR')
                                else:
                                    if resposta == 10:
                                        print('Internacional')
                                    else:
                                        print('Só temos até o décimo!')

ELIF - O que é ? Como usar ?

Note uma coisa no código anterior: a medida que vamos indentando, ele vai indo pra direita...e vai indo...indo...vai indo...

Imagina se fossem 20 times?
30 times ?

O site da CBF tem 214 times brasileiros no ranking.
Como ficaria nosso código ? ENORME, gigante, bagunçado, feio, um verdadeiro cabaré.

Assim não dá, assim não pode!

E é aí que vai em a instrução ELIF.
Note que tem um trecho de código que se repete, e muito:
else:
      if [condição]

Isso se repete vááááárias vezes em nosso código!
O que vamos fazer é resumir ela, para:

elif [condição]:

Simples assim! Pegamos a instrução ELSE que está seguida de uma IF, e fundimos ela em uma instrução chamada ELIF.

ELIF - Por que usar ?

Não precisamos indentar (dar espaço)! Podemos colocar uma ELIF embaixo de outra ELIF e nosso código não fica tão extenso horizontalmente (e escrevemos menos).

O nosso código anterior ficaria:

resposta=int(input('Que colocação no ranking deseja saber: '))

if resposta == 1:
    print('Palmeiras! Vai porco!')
elif resposta == 2:
    print('Cruzeiro')
elif resposta == 3:
    print('Grêmio')
elif resposta == 4:
    print('Santos')
elif resposta == 5:
    print('Atlético-MG! Vai galo!')
elif resposta == 6:
    print('Timão!')
elif resposta == 7:
    print('Mengo!')
elif resposta == 8:
    print('Botafogo')
elif resposta == 9:
    print('Atlétito-PR')
elif resposta == 10:
    print('Internacional')
else:
    print('Só temos até o décimo!')


Bem mais simples, bonito, alinhado e menor.