123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- def prodotto_caro(magazzino):
- # Queste variabili conterranno il prodotto con
- # il prezzo piu' alto. prodotto_caro e' inizializzato
- # ad un valore nullo.
- prodotto_caro = None
- prezzo_massimo = 0
-
- # Cicliamo su tutti i prodotti nel magazzino
- for prodotto in magazzino:
- # Se il prezzo del prodotto attuale e' piu' alto
- # di quello trovato precedentemente lo sostituiamo
- if prodotto["prezzo"] > prezzo_massimo:
- prezzo_massimo = prodotto["prezzo"]
- prodotto_caro = prodotto
-
- # Controlliamo di aver trovato almeno un prodotto
- if prodotto_caro != None:
- return [prodotto_caro["nome"], prodotto_caro["prezzo"]]
- else:
- return ["non trovato", 0]
-
- def valore_magazzino(magazzino):
- # Variabile che conterra' la somma parziale dei
- # prezzi del prodotto
- accumulatore = 0
-
- # Cicliamo su tutti i prodotti nel magazzino
- for prodotto in magazzino:
-
- # Se il prodotto ha disponibilita', accumuliamo il suo
- # prezzo nella variabile accumulatore
- if prodotto["disponibile"] == True:
- accumulatore = accumulatore + prodotto["prezzo"]
-
- return accumulatore
- from csv import writer
- def salva_magazzino(magazzino, nome_file):
- print("Sto salvando il magazzino sul file " + nome_file)
- # Apriamo il file in scrittura e creiamo un oggetto csv
- output_file = open(nome_file, "w")
- csv_writer = writer(output_file)
-
- # Scriviamo nel file l'intestazione del csv
- csv_writer.writerow(["nome", "prezzo", "disponibile"])
-
- # Per tutti i prodotti in magazzino, serializziamoli
- # nel csv
- for prodotto in magazzino:
- lista_riga = [prodotto["nome"], prodotto["prezzo"], prodotto["disponibile"]]
- csv_writer.writerow(lista_riga)
-
- # Rircordiamoci di chiudere il file
- output_file.close()
-
- def magazzini_uguali(magazzino1, magazzino2):
- # Calcoliamo la dimensione dei due magazzini
- dim_mag1 = len(magazzino1)
- dim_mag2 = len(magazzino2)
-
- # Se le dimensioni dei magazzini differiscono i magazzini
- # non saranno uguali
- if dim_mag1 != dim_mag2:
- return False
- else:
- # Utilizziamo un indice di posizione per scorrere
- # sui magazzini in sincronia
- for i in range(0, dim_mag1):
- nome1 = magazzino1[i]["nome"]
- nome2 = magazzino2[i]["nome"]
- prezzo1 = magazzino1[i]["prezzo"]
- prezzo2 = magazzino2[i]["prezzo"]
-
- # Al primo prodotto per il quale non
- # corrispondono il nome o il prezzo restituiamo falso
- if nome1 != nome2 or prezzo1 != prezzo2:
- return False
-
- # Se siamo arrivati fin qui, significa che i magazzini erano
- # uguali
- return True
-
- # Questo main ci permette di testare le funzioni fino ad ora definite
- def main():
-
- # Definiamo una semplice istanza di magazzino
- carta = {"nome" : "carta", "prezzo" : 3, "disponibile" : True}
- penna = {"nome" : "penna", "prezzo" : 5, "disponibile" : True}
- gomma = {"nome" : "gomma", "prezzo" : 1, "disponibile" : False}
- istanza_mag = [carta, penna, gomma]
-
- # Invochiamo le funzioni definite precedentemente per testarle
- print("Il prodotto piu' caro presente in magazzino:")
- print(prodotto_caro(istanza_mag))
-
- print("")
- print("La somma dei prezzi disponibili nel magazzino:")
- print(valore_magazzino(istanza_mag))
-
- print("")
- print("Salviamo ora il magazzino")
- salva_magazzino(istanza_mag, "magazzino.csv")
-
- print("")
- print("Confrontiamo il magazzino con se stesso")
- print(magazzini_uguali(istanza_mag, istanza_mag))
-
- istanza_mag2 = [carta, penna]
- print("Confrontiamo due magazzini diversi")
- print(magazzini_uguali(istanza_mag, istanza_mag2))
-
- gomma_disp = {"nome" : "gomma", "prezzo" : 1, "disponibile" : True}
- istanza_mag3 = [carta, penna, gomma_disp]
- print("Confrontiamo due magazzini che devono essere uguali")
- print(magazzini_uguali(istanza_mag, istanza_mag3))
-
- penna_stilografica = {"nome" : "penna", "prezzo" : 8, "disponibile" : True}
- istanza_mag4 = [carta, penna_stilografica, gomma]
- print("Confrontiamo due magazzini che sono diversi")
- print(magazzini_uguali(istanza_mag, istanza_mag4))
-
- main()
|