Forum >> Principianti >> Negozio

Pagina: 1

Salve,

se qualcuno può aiutarmi a sbloccare alcune cose al codice che ho allegato.
Registrare nuovi prodotti, con nome, quantità, prezzo di vendita e prezzo di acquisto.
Elencare tutti i prodotti presenti.
Registrare le vendite effettuate.
Mostrare i profitti lordi e netti.
Mostrare un menu di aiuto con tutti i comandi disponibili.

Il software è testuale, quindi utilizzabile da riga di comando.

Il codice deve:

1) Aggiungere nuovi prodotti al negozio:
- latte, 20 quantità, 0.80 prezzo di vendita, 1.40 prezzo di acquisto
- tofu, 10 quantità, 2.2 prezzo di vendita, 4.19 prezzo di acquisto
- seitan, 5 quantità, 3 prezzo di vendita, 5.49 prezzo di acquisto


2) Vedere l'elenco:
latte 20 1.40
tofu 10 4.19
seitan 5 5.49


3) Vendere prodotti
nome: latte
quantità: 5


Aggiungi un altro prodotto? SI

nome: tofu
quantità: 2


Aggiungi un altro prodotto? NO

4) Vendita Registrata:

- 5 x latte 1.40
- 2 x tofu 4.19
Totale = €15.38





Aggiungi un altro prodotto? NO
1° Problema -> Mi chiede di aggiungere un altro prodotto nonostante io ho scritto NO sulla linea di comando.



5) Elenco

- latte 15 1.40
- tofu 8 4.19
- seitan 5 5.49

6) Vendi
nome: seitan
quantità: 5


Aggiungi un altro prodotto? NO



7) Vendita Registrata:

- 5 x seitan 5.49
Totale = €27.45


2° Problema -> Nel punto 9, quando vedo l'elenco dei prodotti mi viene visualizzato:

- 5 x latte 1.40
- 2 x tofu 4.19
- 5 x seitan 5.49
Totale = €42.83


Quando io voglio visualizzare solo "seitan" con l'importo totale della vendita di seitan.

8) Elenco:
- latte 15 1.40
- tofu 8 4.19


9) mostra i profitti:

3° Problema -> Avendo cancellato il seitan questo metodo non funziona.

Quello che mi aspetto di vedere è:
lordo: 42,83 €
netto: 19,43 €


Qualcuno può aiutarmi?

Ciao

Valentina

Allegati
L'output da Te esposto NON PUÒ essere prodotto dal codice che hai allegato, quindi, che cosa stai effettivamente chiedendo?
Fatti non foste a viver come bruti...
Se fa partire il progetto che ho allegando su pycharm o prompt dei comandi, all'utente verrà chiesto di inserire questi prodotti e vedrà che quello che sto dicendo le sembrerà tutto più chiaro.
Lo avevo già visto e risolto i problemi esposti prima della mia risposta, mi chiedevo/chiedo però lo scopo di quel codice, suppongo sia un esercizio, in tal caso Ti avrei spiegato i punti critici e lasciato a te la soluzione ... dato che mi dici di eseguirlo, Ok, eccoti la soluzione, trova i Tuoi perché




class VeganProducts:
    def __init__(self):
        self.products = {}  # Dictionary for storing products {product name: [quantity, purchase price, sale price]}
        self.sales = []  # List for recording sales [product name, quantity sold]

    def add_product(self, name, quantity, purchase_price, selling_price):
        if quantity < 0 or purchase_price < 0 or selling_price < 0:
            raise ValueError("The quantity, purchase price and selling price must be positive.")

        if name in self.products:
            self.products[name][0] += quantity
        else:
            self.products[name] = [quantity, purchase_price, selling_price]

    def list_products(self):
        print("Products available in the shop:")
        for name, details in self.products.items():
            print(f"{name}      {details[0]}        €{details[2]}")

    def register_sale(self):
        response = 'Y'
        vendita = []
        while response.upper() == 'Y':
            name = input("Enter the product name: ")
            quantity = int(input("Enter the available quantity: "))
            if name in self.products:
                if self.products[name][0] >= quantity:
                    self.products[name][0] -= quantity
                    vendita.append([name, quantity])
                else:
                    print(f'Quantità eccessiva, disponibile {self.products[name][0]}')
            else:
                print(f'{name} : prodotto non disponibile.')
            response = input("Do you want to add a new product to sell? \n Press Y or N:   ")

        print('VENDITA REGISTRATA')
        total_price = 0
        for name, quantity in vendita:
            total_price += self.products[name][2] * quantity
            print(f"{quantity} X {name} : € {self.products[name][2]}")
        print(f"Totale € {total_price}")
        self.sales += vendita

    def show_profits(self):
        gross_profits = 0
        net_profits = 0
        for sale in self.sales:
            selling_price = self.products[sale[0]][2]
            costo = self.products[sale[0]][1]
            gross_profits += selling_price * sale[1]
            net_profits += selling_price * sale[1] - costo * sale[1]
        print(f"Gross profits: {gross_profits}")
        print(f"Net profits:: {net_profits}")

    def show_help_menu(self):
        print("Available commands:")
        print("1. Add product")
        print("2. Product list")
        print("3. Record sale")
        print("4. Help")
        print("5. Profits")
        print("0. Close")

    def exit(self):
        print("Exiting the program.")
        exit()

def main():
    store = VeganProducts()
    store.show_help_menu()
    while True:
        choice = input("Enter the number corresponding to the desired action: ")
        if choice == "1":
            try:
                name = input("Enter the product name: ")
                quantity = int(input("Enter the available quantity: "))
                purchase_price = float(input("Enter the purchase price: "))
                selling_price = float(input("Enter the sales price: "))
                store.add_product(name, quantity, purchase_price, selling_price)
            except ValueError as e:
                print(e)
        elif choice == "2":
            store.list_products()
        elif choice == "3":
            store.register_sale()
        elif choice == "4":
            store.show_help_menu()
        elif choice == "5":
            store.show_profits()
        elif choice == "0":
            break
        else:
            print("Invalid choice. Try again.")

if __name__ == "__main__":
    main()


Fatti non foste a viver come bruti...


Pagina: 1



Esegui il login per scrivere una risposta.