Files
Laboratori-PY/simulazioni/prodotti/prodotti.py
2024-03-22 17:01:42 +01:00

68 lines
1.8 KiB
Python

import operator
def calcola_punteggio(punteggi: list):
punteggi_ordinati = sorted(punteggi, reverse=True)
return float(punteggi_ordinati[0]) + float(punteggi_ordinati[1]) + float(punteggi_ordinati[3])
def leggi_file(filename: str):
fio = open(filename, "r")
prodotti = []
for line in fio:
line = line.strip().split(" ")
codice = line[0]
categoria = line[1]
costo = line[2]
nazione = line[3]
punteggio_totale = calcola_punteggio(line[4::])
prodotti.append({"codice": codice, "categoria": categoria, "costo": costo, "nazione": nazione, "punteggio": punteggio_totale})
fio.close()
return prodotti
def prodotto_vincente(prodotti: list):
stati = {} # stato: punteggio
categorie = {} # categoria: [codice, valore]
prodotto_vincente = 0
for i in range(len(prodotti)):
prodotto = prodotti[i]
categoria = prodotto["categoria"]
nazione = prodotto["nazione"]
codice = prodotto["codice"]
punteggio = prodotto["punteggio"]
if punteggio > prodotti[prodotto_vincente]["punteggio"]:
prodotto_vincente = i
if categoria not in categorie or punteggio > categorie[categoria][1]:
categorie[categoria] = [codice, punteggio]
if nazione not in stati:
stati[nazione] = punteggio
else:
stati[nazione] += punteggio
stati = sorted(stati, key=operator.itemgetter(1))
print("Prodotto vincente", prodotti[prodotto_vincente]["codice"])
print("I primi tre stati vincenti sono: ", stati[0], stati[1], stati[2])
for categoria in categorie:
print("Il vincitore della categoria", categoria, "è il prodotto", categorie[categoria][0])
def main():
prodotti = leggi_file("input.txt")
prodotto_vincente(prodotti)
main()