Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

4
respostas

[Projeto] Estruturas Condicionais (Desafio: hora da prática(Projetos))

Estes são os meus códigos referentes aos projetos de estrutudas condicionais. Estão de acordo com as boas práticas? Se não, poderia me informar em que pontos posso melhorar. Seguem abaixo:

  • Questão 10:
operadores = '+-*/'

number_1 = float(input('Informe um valor: '))
number_2 = float(input('Informe outro valor: '))
operador_escolhido = input('Digite +(Soma), -(Subtração), *(Multiplicação) ou /(Divisão).\nInforme a operação que deseja fazer: ')
print('---' * 10)

if operador_escolhido in operadores:
  if operador_escolhido == '+':
    resultado = number_1 + number_2
    
    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.')
    else:
      print('O resultado é um número negativo.')
    if resultado % 1 == 0:
      print('O resultado é um número inteiro.')
    else:
      print('O resultado é um número decimal.')

    print(f'{number_1} + {number_2} = {resultado}.')

  elif operador_escolhido == '-':
    resultado = number_1 - number_2
    
    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.')
    else:
      print('O resultado é um número negativo.')
    if resultado % 1 == 0:
      print('O resultado é um número inteiro.')
    else:
      print('O resultado é um número decimal.')
    
    print(f'{number_1} - {number_2} = {resultado}.')

  elif operador_escolhido == '*':
    resultado = number_1 * number_2

    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.')
    else:
      print('O resultado é um número negativo.')
    if resultado % 1 == 0:
      print('O resultado é um número inteiro.')
    else:
      print('O resultado é um número decimal.')

    print(f'{number_1} * {number_2} = {resultado}.')

  else:
    resultado = number_1 / number_2

    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.')
    else:
      print('O resultado é um número negativo.')
    if resultado % 1 == 0:
      print('O resultado é um número inteiro.')
    else:
      print('O resultado é um número decimal.')

    print(f'{number_1} / {number_2} = {resultado}.')
else:
  print('Operador inválido, tente novamente.')
  • Questão 11:
lado_1 = float(input('Informe o tamanho do lado: '))
lado_2 = float(input('Informe o tamanho do lado: '))
lado_3 = float(input('Informe o tamanho do lado: '))

lados = lado_1, lado_2, lado_3
lados_crescente = sorted(lados)

triangulo_possivel = lados_crescente[0] + lados_crescente[1] > lados_crescente[2]

if triangulo_possivel:
  if lado_1 == lado_2 == lado_3:
    print('O triângulo é Equilátero. Tem todos os 3 lados iguais.')
  elif lado_1 == lado_2 or lado_1 == lado_3 or lado_2 == lado_3:
    print('O triângulo é Isósceles. Tem, pelo menos, 2 lados iguais.')
  else:
    print('O triângulo é Escaleno. Tem os 3 lados diferentes.')
else:
  print('Valores dos lados incompatíveis para formar um triângulo, tente novamente.')

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
4 respostas

Aqui estão os outros:

  • Questão 12:
VALOR_ETANOL = 1.7
VALOR_DIESEL = 2

tipo_combustivel = input('Combustíveis disponíveis: E(Etanol) e D(Diesel).\nInforme qual combustível deseja(E ou D): ').upper()

if tipo_combustivel in 'ED':
  litros_combustivel = float(input('Informe quantos litros deseja: '))
  print('---' * 10)

  litros_etanol = VALOR_ETANOL * litros_combustivel
  litros_diesel = VALOR_DIESEL * litros_combustivel

  if tipo_combustivel == 'E' and litros_combustivel <= 15:
    desconto_etanol = litros_etanol * 0.02
    valor_final = litros_etanol - desconto_etanol
    print(f'Você escolheu abastecer {litros_combustivel}L de {tipo_combustivel}.\nDescontos: R${desconto_etanol:.2f}.\nValor a pagar: R${valor_final:.2f}.')

  elif tipo_combustivel == 'E' and litros_combustivel > 15:
    desconto_etanol = litros_etanol * 0.04
    valor_final = litros_etanol - desconto_etanol
    print(f'Você escolheu abastecer {litros_combustivel}L de {tipo_combustivel}.\nDescontos: R${desconto_etanol:.2f}.\nValor a pagar: R${valor_final:.2f}.')
  
  elif tipo_combustivel == 'D' and litros_combustivel <= 15:
    desconto_diesel = litros_diesel * 0.03
    valor_final = litros_diesel - desconto_diesel
    print(f'Você escolheu abastecer {litros_combustivel}L de {tipo_combustivel}.\nDescontos: R${desconto_diesel:.2f}.\nValor a pagar: R${valor_final:.2f}.')

  elif tipo_combustivel == 'D' and litros_combustivel > 15:
    desconto_diesel = litros_diesel * 0.05
    valor_final = litros_diesel - desconto_diesel
    print(f'Você escolheu abastecer {litros_combustivel}L de {tipo_combustivel}.\nDescontos: R${desconto_diesel:.2f}.\nValor a pagar: R${valor_final:.2f}.')

else:
  print('Tipo de combustível inválido, tente novamente.')
  • Questão 13:
vendas_2022 = int(input('Informe a quantidade de vendas no ano de 2022: '))
vendas_2023 = int(input('Informe a quantidade de vendas no ano de 2023: '))
print('---' * 10)

total_vendas = vendas_2022 + vendas_2023
variacao = vendas_2023 - vendas_2022
variacao_percentual = variacao * 100 / total_vendas

if variacao_percentual > 20:
  print(f'A variação foi de {variacao_percentual:.2f}% de 2022 para 2023. Grande bonificação para o time de vendas.')
elif 2 < variacao_percentual <= 20:
  print(f'A variação foi de {variacao_percentual:.2f}% de 2022 para 2023. Pequena bonificação para o time de vendas.')
elif 2 >= variacao_percentual >= -10:
  print(f'A variação foi de {variacao_percentual:.2f}% de 2022 para 2023. Planejamento de políticas de incentivo às vendas.')
else:
  print(f'A variação foi de {variacao_percentual:.2f}% de 2022 para 2023. Corte de gastos.')

Oi, William! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura. Você está aplicando bem as estruturas condicionais, e o código está claro e funcional. Continue assim!

Uma dica interessante para o futuro é testar o match case (disponível a partir do Python 3.10) para simplificar vários if/elif. Veja este exemplo:


operador = input("Digite o operador: ")

match operador:
    case "+":
        print("Soma")
    case "-":
        print("Subtracao")
    case _:
        print("Operador invalido")

Esse código substitui a sequência de if/elif e facilita a leitura.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

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

Questão 10 - Momento dos Projetos:

Olá pessoal, tudo bem?

Poderiam validar se meu código está correto, ou se posso melhorar algo?

N1 = float(input('Digite o 1º número: '))
N2 = float(input('Digite o 2º número: '))
op = input('Para soma, digite +, Para subtração digite -, Para multiplicação digite * e Divisão, digite /')
if op == '+':
resultado = N1 + N2
elif op == '-':
resultado = N1 - N2
elif op == '*':
resultado = N1 * N2
elif op == '/':
resultado = N1 / N2
print(f'O resultado foi:{resultado} ')
if resultado % 2 == 0:
print('O resultado é um nº PAR')
else:
print('O resultado é um nº IMPAR')
if resultado > 0:
print('Número POSITIVO')
else:
print('Número NEGATIVO')
if resultado % 1 == 0:
print('O resultado é um nº Inteiro')
else:
print('O resultado é um nº decimal')

Obrigadaa!

Olá, Stella! Tudo certo?

Seu código está muito bem estruturado, mas tenho também três pontos de melhoria:

Se o usuário tentar realizar uma divisão por zero (N1 / 0), o seu programa irá falhar com um erro.

Em segundo lugar, a verificação de Par/Ímpar (resultado % 2 == 0) só é matematicamente correta e garantida em Python para números inteiros. Se o resultado for um decimal (como $3.5$), a checagem pode ter um comportamento inesperado. O ideal é que a verificação de Par/Ímpar só ocorra depois de você ter certeza de que o número é inteiro (ou seja, quando resultado % 1 == 0 for verdadeiro).

Por fim, devemos garantir o tratamento do zero. O número zero não é classificado como positivo nem negativo, sendo um número neutro. É importante adicionar uma verificação explícita para o zero (elif resultado == 0:), classificando-o corretamente como "NEUTRO" ou apenas "ZERO".

Sugestão de código:

## Leitura dos números e da operação
N1 = float(input('Digite o 1º número: '))
N2 = float(input('Digite o 2º número: '))
op = input('Para soma (+), subtração (-), multiplicação (*) ou divisão (/): ')

resultado = None # Inicializa resultado para garantir que ele exista

## Cálculo da Operação
if op == '+':
  resultado = N1 + N2
elif op == '-':
  resultado = N1 - N2
elif op == '*':
  resultado = N1 * N2
elif op == '/':
  # ⚠️ Ponto de Correção 1: Evitar divisão por zero
  if N2 != 0:
    resultado = N1 / N2
  else:
    print('\nERRO: Divisão por zero não é permitida.')
    # Não prossegue com as verificações
    exit() # Encerra o programa após o erro
else:
  # ⚠️ Ponto de Correção 4: Operação inválida
  print('\nERRO: Operação inválida! Por favor, use +, -, * ou /.')
  exit() # Encerra o programa

## Impressão do Resultado
print(f'\nO resultado da operação foi: {resultado}\n')

## Verificações Adicionais

# 1. Inteiro ou Decimal
if resultado % 1 == 0:
  print('O resultado é um número: **Inteiro**')
  # ⚠️ Ponto de Correção 2: Verifica Par/Ímpar SOMENTE se for Inteiro
  # Garante que o número usado para a verificação seja um inteiro
  resultado_int = int(resultado)
  if resultado_int % 2 == 0:
    print('O resultado é um número: **PAR**')
  else:
    print('O resultado é um número: **ÍMPAR**')
else:
  print('O resultado é um número: **Decimal**')
  # Números decimais não são classificados como Par/Ímpar

# 2. Positivo, Negativo ou Neutro (Zero)
# ⚠️ Ponto de Correção 3: Tratamento do Zero
if resultado > 0:
  print('O resultado é um número: **POSITIVO**')
elif resultado < 0:
  print('O resultado é um número: **NEGATIVO**')
else:
   print('O resultado é um número: **NEUTRO (ZERO)**')

Espero ter ajudado.

Qualquer dúvida que surgir, por favor, peço que abra um novo tópico para que o seu atendimento seja direcionado.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!