1
resposta

Desafio: hora da prática

  1. Um programa deve ser escrito para ler dois números e, em seguida, perguntar à pessoa usuária qual operação ele deseja realizar. O resultado da operação deve incluir informações sobre o número - se é par ou ímpar, positivo ou negativo e inteiro ou decimal.

num1 = float(input("Digite o primeiro número: "))
num2 = float(input("Digite o segundo número: "))
operacao = input("Digite a operação desejada (+, -, *, /): ")

if operacao == '+':
resultado = num1 + num2

elif operacao == '-':
resultado = num1 - num2

elif operacao == '*':
resultado = num1 * num2

elif operacao == '/':
if num2 == 0:
print("Não é possível dividir por zero.")
exit()

resultado = num1 / num2

else:
print("Operação inválida.")
exit()

print(f'\nResultado: {resultado}')

if resultado % 2 == 0:
print("O resultado é um número par")
else:
print("O resultado é um número impar")

if resultado > 0:
print("O resultado é um número positivo")

elif resultado < 0:
print("O resultado é um número negativo")

else:
print("O resultado é zero")

if resultado == int(resultado):
print("O resultado é um número inteiro")
else:
print("O resultado é um número float")
2. Escreva um programa que peça à pessoa usuária três números que representam os lados de um triângulo. O programa deve informar se os valores podem ser utilizados para formar um triângulo e, caso afirmativo, se ele é equilátero, isósceles ou escaleno. Tenha em mente algumas 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.

num1 = int(input("Digite o primeiro número: "))
num2 = int(input("Digite o segundo número: "))
num3 = int(input("Digite o terceiro número: "))

if num1 + num2 > num3 and num1 + num3 > num2 and num2 + num3 > num1:
print('Os valores podem formar um triângulo')

if num1 == num2 == num3:
print('O triângulo é um triângulo equilátero')

elif num1 == num2 or num1 == num3 or num2 == num3:
print('O triângulo é um triângulo isósceles')
else:
print('O triângulo é um triângulo escaleno')
else:
print('Os valores não podem formar um triângulo')

  1. Um estabelecimento está vendendo combustíveis com descontos variados. Para o etanol, se a quantidade comprada for até 15 litros, o desconto será de 2% por litro. Caso contrário, será de 4% por litro. Para o diesel, se a quantidade comprada for até 15 litros, o desconto será de 3% por litro. Caso contrário, será de 5% por litro. O preço do litro de diesel é R$ 2,00 e o preço do litro de etanol é R$ 1,70. Escreva um programa que leia a quantidade de litros vendidos e o tipo de combustível (E para etanol e D para diesel) e calcule o valor a ser pago pelo cliente. Tenha em mente algumas dicas:

O do valor do desconto será a multiplicação entre preço do litro, quantidade de litros e o valor do desconto.
O valor a ser pago por um cliente será o resultado da multiplicação do preço do litro pela quantidade de litros menos o valor de desconto resultante do cálculo.

etanol = 1.70
diesel = 2.00

tipo = input("Digite o tipo de combustível (E para etanol e D para diesel): ").upper()
litros = float(input("Digite a quantidade de litros vendidos: "))

if tipo == 'E':
preco_litro = etanol

if litros <= 15:
    desconto_percentual = 0.02
else:
    desconto_percentual = 0.04

elif tipo == 'D':
preco_litro = diesel

if litros <= 15:
    desconto_percentual = 0.03
else:
    desconto_percentual = 0.05

else:
print("Tipo de combustível inválido.")
exit()

valor_total = preco_litro * litros
valor_desconto = valor_total * desconto_percentual
valor_final = valor_total - valor_desconto

print(f'\nValor sem desconto: R$ {valor_total:.2f}')
print(f'Desconto aplicado: R$ {valor_desconto:.2f}')
print(f'Valor final a pagar: R$ {valor_final:.2f}')

1 resposta

Olá, Weydison! Tudo bem?

Parabéns pela resolução dos desafios! Você demonstrou uma excelente compreensão das Estruturas Condicionais em Python, que são a base para qualquer tomada de decisão automatizada em sistemas de dados.

Sua lógica está muito bem estruturada. Aqui estão alguns pontos de destaque sobre o que você implementou:

1. Calculadora com Análise de Propriedades

Você foi além de apenas realizar o cálculo, aplicando verificações importantes:

  • Tratamento de Divisão por Zero: O uso do if num2 == 0 com o exit() é fundamental para evitar que o programa quebre bruscamente.
  • Verificações de Tipos: A lógica para diferenciar inteiro de decimal (resultado == int(resultado)) é muito inteligente e prática.
  • Normalização: O uso de float(input()) garante que o programa aceite tanto números inteiros quanto reais logo de início.

2. Lógica de Classificação de Triângulos

Neste exercício, você aplicou corretamente a desigualdade triangular. Na Ciência de Dados, classificar padrões com base em regras matemáticas (como você fez com Equilátero, Isósceles e Escaleno) é uma tarefa muito comum em algoritmos de agrupamento.

3. Sistema de Vendas de Combustível

Sua implementação do sistema de descontos está impecável:

  • **Uso do .upper()**: Uma excelente prática de Engenharia de Prompt e Programação para garantir que o sistema aceite tanto "e" quanto "E", melhorando a experiência do usuário.
  • Clareza no Cálculo: Separar o valor_total, valor_desconto e valor_final torna o código muito mais fácil de ler e dar manutenção.
  • Formatação de Saída: O uso de :.2f nas f-strings é essencial para exibir valores monetários de forma profissional.

Dica para o Futuro:

Para deixar seu código ainda mais "limpo", você poderia considerar o uso da estrutura match-case (disponível a partir do Python 3.10) para a escolha das operações na calculadora ou do tipo de combustível. Ela funciona de forma similar ao if/elif, mas é visualmente mais organizada para seleções de opções.

Excelente progresso! Você está construindo uma base lógica muito sólida, o que facilitará muito quando começarmos a trabalhar com bibliotecas de manipulação de dados em larga escala.

Espero que possa ter lhe ajudado!

Uma pergunta para você: No desafio dos triângulos, o que aconteceria no seu código se o usuário digitasse um valor negativo para um dos lados? Como você poderia ajustar a condição inicial para garantir que todos os lados sejam positivos?