margarita gutierrez
margarita gutierrez

Reputation: 3

How can I run this program multiple times without exiting?

I want supermercado() to execute again after it finishes.

Here is the code:

def supermercado():

    """

    problema: realizar software para una tienda/micro empresa/supermercado/
    que facture lo comprado por un cliente.

    entrada: nombre del mesero, mesa, cantidad de productos, totalidad, cambio,
    tipo de metodo de pago.

    salida: software de facturacion terminado.

    """
    print("""                    MAC DONALDS INC.
                   CRA 24C # 49 - 39
                      CALI, VALLE
         TELEFONO 342 1470 CELULAR 317 3799890
    """)

    print("")

    mesero = str(input("Nombre del mesero que atendio pedido: "))
    mesa = input("Que mesa fue atendida: ")
    producto = input("Producto a llevar: ")
    precio_total = int((int(input("Añada precio del producto: ")))* (int(input("Cantidad del producto: "))))

    #preguntaremos si necesita otro producto en su pedido

    print("")
    print("")
    print("Si quieres añadir mas productos marca Y o Marque otra tecla para finalizar con la compra")
    print("")
    mas_productos = input("Añadir mas productos: ")

    while mas_productos == ("Y") or mas_productos == ("y"):

        producto = str((producto) + " , " + input("Producto a llevar: "))
        precio_total = int( (precio_total) + int((int(input("Añada precio del producto: ")))* (int(input("Cantidad del producto: ")))))
        total_producto =  int(((precio_total) + ((precio_total * 8)/(100))))
        mas_productos = input("Añadir mas productos: ")

    total_producto =  int(((precio_total) + ((precio_total * 8)/(100))))
    print("")
    print("")
    print("Precio total $ " + str(total_producto))
    print("")
    print("")
    print("""Medios de pago disponible:

1 - Tarjeta de credito (5% de descuento en su compra)
2 - Dinero en efectivo.
3 - Bonos de descuento. """)

    print("")
    print("")
    pago = int(input("Medio de pago a usar: "))

    if pago == 1:

        print("")
        pago_tarjeta = int(((total_producto) - ((total_producto * 5)/(100))))
        print("Te atendio " + mesero)
        print("")
        print("Compraste los siguentes productos: " + producto)
        print("")
        print("El precio total a pagar fue $ " + str(pago_tarjeta))
        print("")
        print("GRACIAS POR TU COMPRA, ¡TE ESPERAMOS DE NUEVO!")


    if pago == 2:

        dinero_cliente = int(input("Efectivo Dado: "))

        pago_efectivo = int((dinero_cliente) - (total_producto))

        print("")                   
        print("Te atendio " + mesero)
        print("")
        print("Compraste los siguentes productos: " + producto)
        print("")
        print("El precio total a pagar fue $ " + str(total_producto))
        print("Cambio dado: " + str(pago_efectivo))
        print("")
        print("GRACIAS POR TU COMPRA, ¡TE ESPERAMOS DE NUEVO!")

    if pago == 3:

        bono = int(input("Por cuanto monto de dinero es el bono: "))

        if bono == total_producto:

            print("")       
            print("Te atendio " + mesero)
            print("")
            print("Compraste los siguentes productos: " + producto)
            print("")
            print("Gracias por utilizar tu bono, la compra fue paga a su totalidad")
            print("")
            print("GRACIAS POR TU COMPRA, ¡TE ESPERAMOS DE NUEVO!")

        elif bono < total_producto:

            print("")
            print("Te atendio " + mesero)
            print("")
            bono_devuelta = int((total_producto) - (bono))
            print("Tienes que dar de excedente $ " + str(bono_devuelta))
            print("Compraste los siguentes productos: " + producto)
            print("")
            print("Gracias por utilizar tu bono")
            print("")
            print("GRACIAS POR TU COMPRA, ¡TE ESPERAMOS DE NUEVO!")


        elif bono > total_producto:

            print("")
            print("Te atendio " + mesero)
            print("")
            bono_disponible = int((bono) - (total_producto))
            print("Tienes disponible en tu bono $ " + str(bono_disponible) + " Para tu proxima compra")
            print("Compraste los siguentes productos: " + producto)
            print("")
            print("Gracias por utilizar tu bono")
            print("")
            print("GRACIAS POR TU COMPRA, ¡TE ESPERAMOS DE NUEVO!")

        else:
            print("Te atendio " + mesero)
            print("")
            print("GRACIAS POR VENIR A VISITARNOS, ¡TE ESPERAMOS DE NUEVO!")

supermercado()

Upvotes: 0

Views: 64

Answers (2)

Ryan Witek
Ryan Witek

Reputation: 45

Simple fix. It all depends on how many times you want to run it. I use a simple interactive to solve this problem with most of my programs. In your case, it would look something like this:

active = True
while active:
    supermercado()
    reply = input("Run again? ('y'/ 'n') > ")
    reply.lower()
    if reply == "y":
        active = True
    else:
        active = False

This allows you to call the program as many times as the user desires. When a user no longer wishes to run the program, they enter 'n' and the program closes itself.

Good luck!

Upvotes: 1

zmo
zmo

Reputation: 24812

do you want:

while True:
    supermercado()

?

Upvotes: 2

Related Questions