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

[Duda] Float, Decimales y formato

Si mando a imprimir un texto que diga

print("El total a pagar es de $", valorDinero, " aplicando el 2% de descuento por litro por haber ingresado", valorPorcentaje, "litros de etanol")

Me estaria mostrando un texto que diga asi: El total a pagar es de $37.57876545647 aplicando el 2% de descuento por litro por haber ingresado 15 litros de etanol

Pero si quisiera usar operadores de formato para delimitar la cantidad de decimales el código me queda asi:

print("El total a pagar es de: $ %.2f, aplicando el 2% de descuento por litro por haber ingresado %.2f litros de etanol" %(descEtanol, cantiEtanol)

Al ejecutar el código me muestra un error ya que esta esperando un tercer argumento por el símbolo de porcentaje que coloque seguido del 2 (2%). Si cambio el 2% por el texto 2 porciento el código se me ejecuta sin ningún problema.

Pero cual seria la forma ideal de mezclar o insertar un simbolo de porcentaje cuando se usan operadores de formato ya fuesen: %s %d %f %c

dejo abajo el codigo del ejercicio 12 que realice y me dio problemas pero solucione sustituyendo el simbolo de porcentaje por la palabra. El programa dara un error si se ingresa esta secuencia: diesel > 20. si se coloca: diesel > 15 o un valor menos, no da problemas.

combustible = input("Ingrese el tipo de combustible que desea: (etanol / diesel): ")
precioEtanol = 1.70
precioDiesel = 2.00

if combustible == "etanol":
  cantiEtanol = float(input("Ingrese la cantidad de litros a comprar de Etanol: "))
  if cantiEtanol <= 15:
    descEtanol = (precioEtanol/1.02)*cantiEtanol
    print("El total a pagar es de: $ %.2f, aplicando el 2 porciento de descuento por litro por haber ingresado %.2f litros de etanol" %(descEtanol, cantiEtanol))
  elif cantiEtanol > 15:
    descEtanol = (precioEtanol/1.04)*cantiEtanol
    print("El total a pagar es de: $ %.2f aplicando el 4 porciento de descuento por litro por haber ingresado %.2f litros de etanol" %(descEtanol, cantiEtanol))
elif combustible == "diesel":
  cantiDiesel = float(input("Ingrese la cantidad de litros a comprar de Diesel: "))
  if cantiDiesel <= 15:
    descDiesel = (precioDiesel/1.03)*cantiDiesel
    print("El total a pagar es de: $ %.2f aplicando el 3 porciento de descuento por litro por haber ingresado %.2f litros de etanol" %(descDiesel, cantiDiesel))
  elif cantiDiesel > 15:
    descDiesel = (precioDiesel/1.05)*cantiDiesel
    print("El total a pagar es de: $ %.2f aplicando el 5" + chr(37) + "porcentaje de descuento por litro por haber ingresado %.2f litros de etanol" %(descDiesel, cantiDiesel))

incluso probe colocando un chr(37) pero no me dio resultados, me mostro esto:

TypeError                                 Traceback (most recent call last)

<ipython-input-145-502c08a92c24> in <cell line: 5>()
     18   elif cantiDiesel > 15:
     19     descDiesel = (precioDiesel/1.05)*cantiDiesel
---> 20     print("El total a pagar es de: $ %.2f aplicando el 5" + chr(37) + " de descuento por litro por haber ingresado %.2f litros de etanol" %(descDiesel, cantiDiesel))
     21 

TypeError: not all arguments converted during string formatting
2 respuestas
solución!

¡Hola! Entiendo tu problema. La forma ideal de mezclar o insertar un símbolo de porcentaje cuando se usan operadores de formato en Python es utilizando el doble símbolo de porcentaje (%%) para representar un único símbolo de porcentaje. Por ejemplo, en tu código podrías hacerlo de la siguiente manera:

print("El total a pagar es de: $ %.2f, aplicando el 2%% de descuento por litro por haber ingresado %.2f litros de etanol" %(descEtanol, cantiEtanol))

Al utilizar el doble porcentaje (%%), Python interpretará que quieres mostrar un único símbolo de porcentaje en tu cadena de texto.

Espero que esta solución te sea de ayuda. ¡Sigue practicando y mejorando en tu aprendizaje de Python para Data Science! Si tienes alguna otra duda, no dudes en preguntar.

Espero haber ayudado y buenos estudios!

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

Muchas gracias Ingrid, me queda clara la solucion para usar el simbolo de porcentaje.