Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Ejercicio 12. Use muchas variables?

Quisiera saber si este ejercicio que funciona bien de todos modos, esta usando muchas variables o esta correspondiente a las buenas practicas, para tomar nocion de cuanto usar o no. Lo hice de esta forma porque el precio del combustible y los descuentos son cosas muy cambiantes. pero entiendo que podria ocupar mucha memoria o ser mas complejo de entender.

#12
#Solicito informacion al usuario
combustible = input('Que combustible desea comprar? ').lower()
litros = float(input('Cuantos litros desea comprar? '))

#precio de los combustibles
precioEtanol = 2
precioDiesel = 1.70

#descuentos
dtoDminor = float(precioDiesel * litros * 0.02)
dtoDmayor = float(precioDiesel * litros * 0.04)
dtoEminor = float(precioEtanol * litros * 0.03)
dtoEmayor = float(precioEtanol * litros * 0.05)

#codigos
diesel = 'D'
etanol = 'E'

#precio total
totalDiesel = litros * precioDiesel
totalEtanol = litros * precioEtanol

#precio neto con dto
netoDminor = float(totalDiesel - dtoDminor)
netoEminor = float(totalEtanol - dtoEminor)
netoDmayor = float(totalDiesel - dtoDmayor)
netoEmayor = float(totalEtanol - dtoEmayor)

if combustible == 'diesel':
if litros <= 15:
print(f'Usted esta llevando {diesel} {litros}, el valor total es de {totalDiesel} Reales, el valor a pagar con descuento minorista es: {netoDminor}')
else:
print(f'Usted esta llevando {diesel} {litros}, el valor total es de {totalDiesel} Reales, el valor a pagar con descuento mayorista es: {netoDmayor}')

if combustible == 'etanol':
if litros <= 15:
print(f'Usted esta llevando {etanol} {litros}, el valor total es de {totalEtanol} Reales, el valor a pagar con descuento minorista es: {netoEminor}')
else:
print(f'Usted esta llevando {etanol} {litros}, el valor total es de {totalEtanol} Reales, el valor a pagar con descuento mayorista es: {netoEmayor}')

2 respuestas
solución!

¡Hola! Gracias por compartir tu código y tu preocupación sobre las buenas prácticas en programación. Vamos a analizarlo juntos.

Tu código parece estar bien estructurado y funcional para el problema que estás resolviendo. Sin embargo, es cierto que podrías simplificarlo un poco para hacerlo más legible y eficiente. Aquí te dejo algunas sugerencias:

  1. Uso de Diccionarios: Puedes usar un diccionario para almacenar los precios y los descuentos, lo que hará que tu código sea más fácil de mantener y expandir en el futuro.

  2. Reducción de Variables: Algunas variables, como totalDiesel, totalEtanol, netoDminor, etc., pueden calcularse directamente dentro de las condiciones if, reduciendo así el número de variables.

  3. Evitar Repetición de Código: Observa que las condiciones para diesel y etanol son muy similares. Puedes usar una estructura más general para evitar la repetición.

Aquí tienes un ejemplo de cómo podrías reestructurar tu código:

# Solicito información al usuario
combustible = input('¿Qué combustible desea comprar? ').lower()
litros = float(input('¿Cuántos litros desea comprar? '))

# Precios y descuentos
precios = {'diesel': 1.70, 'etanol': 2.00}
descuentos = {
    'diesel': {True: 0.02, False: 0.04},
    'etanol': {True: 0.03, False: 0.05}
}

# Cálculo del precio y descuento
if combustible in precios:
    precio_por_litro = precios[combustible]
    es_menor_igual_15 = litros <= 15
    descuento = descuentos[combustible][es_menor_igual_15]
    
    total = litros * precio_por_litro
    descuento_total = total * descuento
    neto = total - descuento_total
    
    print(f'Usted está llevando {combustible} {litros} litros, el valor total es de {total:.2f} Reales, el valor a pagar con descuento es: {neto:.2f}')
else:
    print('Tipo de combustible no válido.')

Este enfoque hace que el código sea más compacto y fácil de modificar. Por ejemplo, si cambian los precios o los descuentos, solo necesitas actualizar los valores en los diccionarios.

Espero que estas sugerencias te sean útiles y te ayuden a mejorar tu código. ¡Bons estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!

Hola Ingrid! wow queda re distinto, voy a mirarlo bien así empiezo a pensar de esta forma, no conocía los diccionarios se ve mucho mas util.
Muchas gracias!