Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Desafio: hora da prática (Momento dos Projetos)

Segue minhas soluções dos projetos de condicionais
Questão 10

print('LUPA DOS NÚMEROS\n')
print('Escolha dois números para realizar uma operação matemática: \n')
num1 = float(input('Digite o 1º número: '))
num2 = float(input('Digite o 2º número: '))
print('\nOperações disponíveis: soma (S), subtração (SUB), multiplicação (M), divisão (D), potenciação (P), resto (R)')
operacao = str(input('Digite a operação desejada: '))
if operacao == 'S':
  resultado = num1 + num2
elif operacao == 'SUB':
  resultado = num1 - num2
elif operacao == 'M':
  resultado = num1 * num2
elif operacao == 'D':
  resultado = num1 / num2
elif operacao == 'P':
  resultado = num1 ** num2
elif operacao == 'R':
  resultado = num1 % num2
else:
  print('Operação inválida!')
print(f'\nO resultado é {resultado}!')
print('\nAnálise do número resultado: ')
if resultado % 2 == 0:
  print(f'\nPAR (divisível por 2 com resto igual a 0)')
else:
  print(f'\nÍMPAR (divisível por 2 com resto diferente de 0)')
if resultado > 0:
  print(f'POSITIVO ({resultado} > 0)')
else:
  print(f'NEGATIVO ({resultado} < 0)')
if resultado % 1 == 0:
  print(f'INTEIRO (pertence ao conjunto dos números inteiros)')
else:
  print(f'DECIMAL (pertence ao conjunto dos números racionais)')
print('\nObrigado por usar a Lupa dos Números!')

Questão 11

print('CRIE SEU TRIÂNGULO!\n')
lado1 = float(input('Digite o tamanho do 1º lado: '))
lado2 = float(input('Digite o tamanho do 2º lado: '))
lado3 = float(input('Digite o tamanho do 3º lado: '))
if (lado1 + lado2) > lado3 and (lado2 + lado3) > lado1 and (lado1 + lado3) > lado2:
  print('\nÉ possível formar um triângulo!')
  if lado1 == lado2 and lado1 == lado3:
    print('\nO triângulo é EQUILÁTERO.\nTodos seus lados são iguais!\nTODOS seus ângulos são de 60º')
  elif lado1 == lado2 or lado1 == lado3 or lado2 == lado3:
    print('\nO triângulo é ISÓSCELES. \nTem 2 lados iguais!\nTem 2 ângulos agudos IGUAIS (0º < o < 90º)')
  else:
    print('\nO triângulo é ESCALENO. \nTodos seus lados e ãngulos são diferentes!')
else:
  print('\nNão é possível formar um triângulo!')

Questão 12

print('POSTO VROOM VALORES PROMOCIONAIS\n')
etanol = float(1.70)
diesel = float(2)
cliente = input('O cliente é inscrito? [S/N]: ')
tipo = input('Selecione o tipo de combustível [etanol (E), diesel (D)]: ')
quantidade = float(input('Digite a quantidade de litros: '))
if cliente == 'S':
  print('\nCliente inscrito. Promoção válida!')
  if tipo == 'E':
    if 0 < quantidade <= 15:
      desconto = etanol * quantidade * 0.02
    elif quantidade > 15:
      desconto = etanol * quantidade * 0.04
    else:
      print('\nQuantidade inválida!')
  elif tipo == 'D':
    if 0 < quantidade <= 15:
      desconto = diesel * quantidade * 0.03
    elif quantidade > 15:
      desconto = diesel * quantidade * 0.05
    else:
      print('\nQuantidade inválida!')
elif cliente == 'N':
  print('\nCliente não inscrito. Promoção não disponível!')
else:
  print('\nOpção inválida!')
if tipo == 'E':
  valor = etanol * quantidade
elif tipo == 'D':
  valor = diesel * quantidade
else:
  print('\nOpção inválida!')
print('\nValor Total = R$%.2f' %(valor))
if cliente == 'S':
  valid = input('Deseja aplicar o desconto? [S/N]: ')
  #retornar valor promocional
  if valid == 'S':
    print('\nValor Promocional = R$%.2f' %(valor - desconto))
  elif valid == 'N':
    print('\nValor Total = R$%.2f' %(valor))
  else:
    print('\nOpção inválida!')
elif cliente == 'N':
  print('\nValor Total = R$%.2f' %(valor))
else:
  print('\nOpção inválida!')
pagar = input('Realizar Pagamento? [S/N]: ')
if pagar == 'S':
  print('\nPagamento realizado!')
elif pagar == 'N':
  print('\nPagamento não realizado!')
else:
  print('\nOpção inválida!')
print('\nObrigado por usar o Posto Vroom!')

Questão 13

print('ANÁLISE ESTRATÉGICA ANUAL')
v2022 = float(input('Digite o valor das vendas em 2022: '))
d2022 = float(input('Digite o valor das despesas em 2022: '))
v2023 = float(input('Digite o valor das vendas em 2023: '))
d2023 = float(input('Digite o valor das despesas em 2023: '))
variacao = (v2023 - v2022) / v2022 * 100
lucro2022 = v2022 - d2022
lucro2023 = v2023 - d2023
print(f'\nRelatório Estratégico')
if lucro2022 > 0:
  print(f'\nLucro em 2022 = R$%.2f' %(lucro2022))
else:
  print(f'\nPrejuízo em 2022 = R$%.2f' %(lucro2022))
if lucro2023 > 0:
  print(f'Lucro em 2023 = R$%.2f' %(lucro2023))
else:
  print(f'Prejuízo em 2023 = R$%.2f' %(lucro2023))
print(f'Variação percentual = {variacao}%')
print(f'\nDecisão estratégica Ideal: ')
if variacao > 20:
  print('\nBonificação para o time de vendas!')
elif variacao > 2:
  print('\nPequena bonificação para o time de vendas!')
elif variacao > -10:
  print('\nPlanejamento de políticas de incentivo às vendas!')
else:
  print('\nCorte de gastos!')
1 resposta

Oii Regina, tudo bem?

Obrigada por compartilhar suas soluções aqui no fórum, com certeza vai ajudar outros alunos que estiverem fazendo os mesmos desafios!

Os quatro projetos estão bem estruturados. Dá pra ver que você foi além do básico em vários pontos: o nome "Lupa dos Números" ficou criativo, a verificação da existência do triângulo antes de classificar o tipo está correta (muita gente esquece essa etapa), e a questão 12 do posto tem uma lógica de desconto bem detalhada com os diferentes percentuais por combustível e faixa de litros.

Tenho só duas observações que podem fortalecer ainda mais o código:

Na questão 10, se o usuário digitar uma operação inválida, o programa imprime "Operação inválida!" mas ainda tenta acessar resultado na linha seguinte, o que vai gerar um NameError porque a variável nunca foi definida. Uma forma simples de evitar isso é encapsular o restante do código dentro de um bloco else (ou colocar um exit() / return após o print de erro), garantindo que a análise só rode quando resultado existir.

Na questão 12, um cenário parecido pode acontecer se o tipo de combustível for inválido: valor não seria definido, mas o print de valor total tentaria exibi-lo mesmo assim. Vale aplicar a mesma lógica.

Fora isso, o raciocínio está sólido e o código bem legível. Parabéns pelo cuidado com as mensagens ao usuário, deixa a experiência bem mais clara!

Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade