17dicembre_esame.py
1    from urllib import request
2    
3    
4    def esercizio1(url):
5        lista = []
6        chiavi = []
7        documento = request.urlopen(url)
8        for pos, elem in enumerate(documento):
9            if pos == 0:
10               chiavi = elem.decode().strip().split(",")
11           else:
12               valori = elem.decode().strip().split(",")
13               dizionario = {}
14               for pos_chiavi, chiave in enumerate(chiavi):
15                   val = valori[pos_chiavi]
16                   if chiave == "Quantità":
17                       val = int(val)
18                   elif chiave == "Prezzo Unitario" or chiave == "Totale":
19                       val = float(val)
20                   dizionario.update({chiave:val})
21               lista.append(dizionario)
22       return lista
23   
24   data = esercizio1("https://pastebin.com/raw/90J6YpK6")
25   for elem in data:
26       print(elem)
27   
28   def esercizio2(data):
29       massimo = 0
30       id = None
31       for elem in data:
32           if elem["Totale"] > massimo:
33               massimo = elem["Totale"]
34               id = elem["ID Ordine"]
35       return id
36   massimo = esercizio2(data)
37   print("esercizio2:",massimo)
38   
39   def esercizio3(data):
40       conta_ordini = 0
41       for elem in data:
42           if elem["Prodotto"] == "Smartphone":
43               conta_ordini += 1
44       return conta_ordini
45   ordini_smartphone = esercizio3(data)
46   print("esercizio3:",ordini_smartphone)
47   
48   def esercizio4(data):
49       lista = []
50       for elem in data:
51           prezzo_unitario = elem["Prezzo Unitario"]
52           prezzo_errato = elem["Totale"]
53           quantita = elem["Quantità"]
54           totale_corretto = quantita * prezzo_unitario
55           if totale_corretto != prezzo_errato:
56               lista.append((elem["ID Ordine"], prezzo_errato, totale_corretto))
57       return lista
58   id = esercizio4(data)
59   print("esercizio4:",id)
60   
61   def esercizio5(id, nome_file):
62       file = open(nome_file, "w")
63       for pos, elem in enumerate(id):
64           file.write(str(elem[0]) + "," + str(elem[1]) + "," + str(elem[2]) + ";" + "\n")
65       file.close()
66   esercizio5(id, "esamedicembre.txt")
67   
68