Me estoy haciendo un inesperado personaje con carácter de continuación de línea de error en esta línea

 print (\t,"Order total $",format(total, "10.2"),\n\t,"Discount    $",format(disc,"10.2"),\n\t,"Amount Due $",format (due, "10.2"),sep="")

posible que alguien me diga lo que significa y cómo solucionarlo?
gracias

def finddiscount(quantity):
        if quantity >= 1 and quantity <= 9:
            discount = 0
        elif quantity >= 10 and quantity <= 19:
            discount = .2
        elif quantity >= 20 and quantity <= 49:
            discount = .30
        elif quantity >= 50 and quantity <= 99:
            discount = .40
        elif quantity >= 100:
            discount = .50
    def calctotal(quantity, price):
        disc = (price*quantity)*finddiscount(quantity)
        total = (price*quantity)
        due = (price*quantity)-(price*quantity)*dicount
        print (\t,"Order total $",format(total, "10.2"),\n\t,"Discount    $",format(disc,"10.2"),\n\t,"Amount Due $",format (due, "10.2"),sep="")
    def main():
        quantity = int(input("How many packages where purchased?"))
        price = float(input("How much is each item?"))
        calctotal(quantity, price)
    main()
InformationsquelleAutor user3285386 | 2014-02-18

2 Comentarios

  1. 5

    Has olvidado usar comillas alrededor de muchos artículos en esta línea:

    print ("\t","Order total $",format(total, "10.2"),"\n\t","Discount    $",format(disc,"10.2"),"\n\t","Amount Due $",format (due, "10.2"),sep="")
            ^                                           ^                                          ^

    Y la otra forma es utilizar str.format como este:

    print ("\tOrder total $ {:10.2}\n\tDiscount    ${:10.2}\n\tAmount Due ${:10.2}".format(total, disc, due))
    • No agregue el g allí por ninguna razón. Para obtener exactamente los mismos resultados que format(…, "10.2") solo uso {:10.2}.
  2. 1

    Ashwini la respuesta explica por qué el código da el error de que lo hace.

    Pero hay una manera mucho más sencilla de hacer esto. En lugar de imprimir un montón de cadenas separadas por comas como este, sólo hay que poner las cadenas juntos:

    print("\tOrder total $", format(total, "10.2"),
          "\n\tDiscount    $", format(disc, "10.2"),
          "\n\tAmount Due $", format(due, "10.2"), sep="")

    (También he arreglado todo para que quepa en un 80 columnas de la pantalla, que es un estándar por muy buenas razones: por un lado, es realmente legible en cosas como StackOverflow; por otro, que lo hace mucho más evidente que su código no es en realidad la línea hasta la manera que quería…)

    En este caso, probablemente sería mejor utilizar tres print llamadas. Entonces usted no necesita los \n personajes en el primer lugar:

    print("\tOrder total $", format(total, "10.2"), sep="")
    print("\tDiscount    $", format(disc, "10.2"), sep="")
    print("\tAmount Due $", format(due, "10.2"), sep="")

    Mientras tanto, puesto que usted ya está usando la format función, que no debería tener problemas para aprender acerca de la format método, que hace las cosas aún más simples. De nuevo, puede utilizar tres declaraciones—, pero en este caso, tal vez un multi-línea (triple-citado) cadena sería más fácil de leer:

    print("""\tOrder total ${:10.2}
    \tDiscount    ${:10.2}
    \tAmount Due ${:10.2}""".format(total, disc, due))

    Ver la sección de tutoriales en Aficionado Formato De Salida para más detalles sobre todo esto.

Dejar respuesta

Please enter your comment!
Please enter your name here