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