3
respostas

Praticando Condicionais: A experiência com IFs aninhados e Operadores Lógicos

Gostaria de compartilhar minha resolução dos desafios propostos sobre estruturas condicionais (if, elif, else).

Achei a prática extremamente interessante, especialmente por trabalhar com condições aninhadas (um if dentro de outro). Em outros cursos de Python que realizei anteriormente, eu ainda não tinha tido a oportunidade de colocar essa estrutura em prática de forma tão direta, e ver como isso ajuda a filtrar melhor as regras de negócio foi um grande aprendizado.

Além disso, os exercícios foram ótimos para fixar o uso de operadores lógicos como and, or, not e in. No desafio do triângulo, por exemplo, o uso do and foi essencial para validar a existência da forma geométrica antes de classificar o tipo de triângulo.

Tôa chado interesante rever os fundamentos de python neste curso, estou conseguindo aprender bastante. Tem até alguns exercícios que no inicio dos meus estudos em python eu não entendia a lógica, tipo esse:

valor_1 = float(input('Digite o valor medieo do carro no primeiro ano: '))
valor_2 = float(input('Digite o valor medieo do carro no segundo ano: '))
valor_3 = float(input('Digite o valor medieo do carro no terceiro ano: '))

if valor_1 > valor_2 and valor_1 > valor_3:
  print(f'O valor mais alto é {valor_1}')
elif valor_2 > valor_1 and valor_2 > valor_3:
  print(f'O valor mais alto é {valor_2}')
else:
  print(f'O valor mais alto é {valor_3}')

No inicio, lá em janeiro, não entrava na minha cabeça essa lógica de:

valor_1 > valor_2 and valor_1 > valor_3

Isso pra mim era grego kk

Hoje fazendo esse exercício percebi isso e compreendi. E deste modo, vejo que realmente estou conseguindo evoluir na programação.

3 respostas

Desafio: hora da prática

Vamos praticar o uso de estruturas condicionais como o if, else e elif a partir de algumas atividades. Agora que estamos avançando nos conteúdos, podemos tornar os desafios mais interessantes: vamos trabalhar com projetos de código! Solucione os problemas de aquecimento para se preparar para os projetos:

Aquecendo na programação

1)


numero1 = int(input('Digite o primeiro numero: '))
numero2 = int(input('Digite o segundo numero: '))

if numero1 > numero2:
  print(f'O numero {numero1} é maior que o numero {numero2}')
elif numero2 > numero1:
  print(f'O numero {numero2} é maior que o numero {numero1}')
else:
  print('Os numeros são iguais')

2)

percentual_crescimento = float(input('Digite o percentual de crescimento: '))

if percentual_crescimento > 0:
  print(f'Houve um crescimento de {percentual_crescimento}%')
elif percentual_crescimento < 0:
  print(f'Houve um decrescimento de {percentual_crescimento}%')
else:
  print('Não houve crescimento nem decrescimento')
vocal_consoante = input('Digite uma letra: ')

if vocal_consoante == 'a' or vocal_consoante == 'e' or vocal_consoante == 'i' or vocal_consoante == 'o' or vocal_consoante == 'u':
  print(f'A letra {vocal_consoante} é uma vogal')
else:
  print(f'A letra {vocal_consoante} é uma consoante')

4)

valor_1 = float(input('Digite o valor medieo do carro no primeiro ano: '))
valor_2 = float(input('Digite o valor medieo do carro no segundo ano: '))
valor_3 = float(input('Digite o valor medieo do carro no terceiro ano: '))

if valor_1 > valor_2 and valor_1 > valor_3:
  print(f'O valor mais alto é {valor_1}')
elif valor_2 > valor_1 and valor_2 > valor_3:
  print(f'O valor mais alto é {valor_2}')
else:
  print(f'O valor mais alto é {valor_3}')
preco_produto1 = float(input('Digite o preço do primeiro produto: '))
preco_produto2 = float(input('Digite o preço do segundo produto: '))
preco_produto3 = float(input('Digite o preço do terceiro produto: '))

if preco_produto1 < preco_produto2 and preco_produto1 < preco_produto3:
  print(f'O produto mais barato é o primeiro produto que custa {preco_produto1}')
elif preco_produto2 < preco_produto1 and preco_produto2 < preco_produto3:
  print(f'O produto mais barato é o segundo produto que custa {preco_produto2}')
else:
  print(f'O produto mais barato é o terceiro produto que custa {preco_produto3}')
numero1 = int(input('Digite o primeiro numero: '))
numero2 = int(input('Digite o segundo numero: '))
numero3 = int(input('Digite o terceiro numero: '))

if numero1 > numero2 and numero1 > numero3:
  if numero2 > numero3:
    print(f'{numero1}, {numero2}, {numero3}')
  else:
    print(f'{numero1}, {numero3}, {numero2}')
elif numero2 > numero1 and numero2 > numero3:
  if numero1 > numero3:
    print(f'{numero2}, {numero1}, {numero3}')
  else:
    print(f'{numero2}, {numero3}, {numero1}')
else:
  if numero1 > numero2:
    print(f'{numero3}, {numero1}, {numero2}')
  else:
    print(f'{numero3}, {numero2}, {numero1}')

7)

turno_estudante = int(input('Em qual turno você estuda? \nDigite 1 para manhã, \n2 para tarde ou \n3 para noite: '))
print(turno_estudante)

if turno_estudante == 1:
  print('Bom dia!')
elif turno_estudante == 2:
  print('Boa tarde!')
elif turno_estudante == 3:
  print('Boa noite!')
else:
  print('Valor inválido!')

8)

numero_inteiro = int(input('Digite um numero inteiro: '))

if numero_inteiro % 2 == 0:
  print(f'O numero {numero_inteiro} é par')
else:
  print(f'O numero {numero_inteiro} é impar')

9)

numero_inteiro_decimal = float(input('Digite um numero inteiro ou decimal: '))

if numero_inteiro_decimal % 1 == 0:
  print(f'O numero {numero_inteiro_decimal} é inteiro')
else:
  print(f'O numero {numero_inteiro_decimal} é decimal')

PROJETOS:

10)


print('-='*30)
operacao = int(input('Qual operação deseja realizar? \nDigite 1 para descobrir se é par ou impar: \nDigite 2 para descobrir se é positivo ou negativo: \nDigite 3 para descobrir se é inteiro ou decimal: '))
print('-='*30)
if operacao == 1:
  print('Você escolheu par ou ímpar!')
elif operacao == 2:
  print('Você escolheu positivo ou negativo!')
else:
  print('Você escolheu inteiro ou decimal!')
print('-='*30)

numero1 = int(input('Digite o primeiro numero: '))
numero2 = int(input('Digite o segundo numero: '))
print('-='*30)

if operacao == 1:
  if numero1 % 2 == 0:
    print(f'O numero {numero1} é par')
  else:
    print(f'O numero {numero1} é impar')
elif operacao == 2:
  if numero1 > 0:
    print(f'O numero {numero1} é positivo')
  elif numero1 < 0:
    print(f'O numero {numero1} é negativo')
else:
  if numero1 % 1 == 0:
    print(f'O numero {numero1} é inteiro')
  else:
    print(f'O numero {numero1} é decimal')    

11)

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.


lado1 = float(input('Digite o primeiro lado do triangulo: '))
lado2 = float(input('Digite o segundo lado do triangulo: '))
lado3 = float(input('Digite o terceiro lado do triangulo: '))

if lado1 + lado2 > lado3 and lado1 + lado3 > lado2 and lado2 + lado3 > lado1:
  if lado1 == lado2 and lado1 == lado3:
    print('O triangulo é equilátero')
    elif lado1 == lado2 or lado1 == lado3 or lado2 == lado3:
    print('O triangulo é isósceles')
  else:
    print('O triangulo é escaleno')
else:
  print('Não é um triangulo')

12)

litros_vendidos = float(input('Digite a quantidade de litros vendidos: '))
tipo_combustivel = input('Digite o tipo de combustivel (E para etanol e D para diesel): ').upper().strip()

if tipo_combustivel == 'E':
  preco_litro = 1.70
  if litros_vendidos <= 15:
    desconto = 0.02
  else:
    desconto = 0.04
elif tipo_combustivel == 'D':
  preco_litro = 2.00
  if litros_vendidos <= 15:
    desconto = 0.03
  else:
    desconto = 0.05
else:
  print('Tipo de combustível inválido. Por favor, digite E para etanol ou D para diesel.')
  desconto = 0 # Define um desconto padrão ou encerra o programa se o tipo for inválido
  preco_litro = 0 # Define um preço padrão

if preco_litro > 0: # Apenas calcula se o tipo de combustível for válido
  valor_desconto = preco_litro * litros_vendidos * desconto
  valor_a_pagar = (preco_litro * litros_vendidos) - valor_desconto
  print(f'O valor total a ser pago é R$ {valor_a_pagar:.2f}')

13)


Para variação acima de 20%: bonificação para o time de vendas.
Para variação entre 2% e 20%: pequena bonificação para time de vendas.
Para variação entre 2% e -10%: planejamento de políticas de incentivo às vendas.
Para variação abaixo de -10%: corte de gastos.
Caso precise de ajuda, opções de solução das atividades estarão disponíveis na seção “Opinião da pessoa instrutora”.

quantidade_de_venda_2023 = int(input('Digite a quantidade de venda do ano de 2023: '))
quantidade_de_venda_2022 = int(input('Digite a quantidade de venda do ano de 2022: '))

variacao_percentual = ((quantidade_de_venda_2023 - quantidade_de_venda_2022) / quantidade_de_venda_2022) * 100

print(f'A variação percentual foi de: {variacao_percentual:.2f}%')

if variacao_percentual > 20:
  print('Bonificação para o time de vendas')
elif variacao_percentual >= 2 and variacao_percentual <= 20:
  print('Pequena bonificação para time de vendas')
elif variacao_percentual < 2 and variacao_percentual >= -10:
  print('Planejamento de políticas de incentivo às vendas')
elif variacao_percentual < -10:
  print('Corte de gastos')

Oi, André

Agradeço por compartilhar.

É muito bom ver essa percepção de evolução acontecendo na prática. A lógica do and realmente pode parecer confusa no começo, porque ela exige que as duas comparações sejam verdadeiras ao mesmo tempo. No caso de valor_1 > valor_2 and valor_1 > valor_3, o Python só entra nesse if se valor_1 for maior que os dois outros valores.

Sua resolução mostra um bom domínio de if, elif, else, operadores lógicos e condições aninhadas.

Continue praticando desse jeito, revisitar fundamentos com mais experiência faz muita diferença para consolidar a lógica de programação.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!