Andrea Gussoni 5 lat temu
rodzic
commit
4a60f4d305
1 zmienionych plików z 123 dodań i 0 usunięć
  1. 123 0
      magazzino.py

+ 123 - 0
magazzino.py

@@ -0,0 +1,123 @@
+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()