Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Prova d'esame Python sui interessi, Esercizi di Fondamenti di informatica

Prova d'esame Python sui interessi

Tipologia: Esercizi

2020/2021

Caricato il 29/04/2022

taytmaters
taytmaters 🇮🇹

18 documenti

1 / 2

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Marco,Mamei,Computer:5/10:Web:6/9:Computer:4/8:Auto:5/6
Matteo,Mamei,Computer:10/10:Vacanza:6/9
Sara,Rossi,Corsa:10/10:Nuoto:3/6:Jogging:7/8:Sci:4/5
from fractions import Fraction
d = {}
with open('file.txt')as f:
for l in f:
l=l.strip()
if len(l)>0:
nome =l.split(',')[0]
cognome =l.split(',')[1]
s = l.split(',')[2]
#print(s)
t = s.split(':')
#print(k)
interessi = [t[i] for i in range(0,len(t),2)]
percentuali = []
for i in range(1, len(t), 2):
primoNum = l.split(':')[i].split('/')[0]
secondoNum = l.split(':')[i].split('/')[1]
percentuale = float(int(primoNum) / int(secondoNum))
percentuali.append(percentuale)
if nome and cognome in d:
d[nome+cognome].append([interessi,percentuali])
else:
d[nome+cognome] = [interessi,percentuali]
print(d)
for k, v in d.items():
print(k, '--->', v)
#2.Per ogni persona stampare la media dei valori di tutti i suoi interessi attività
interessi_p = {}
pf2

Anteprima parziale del testo

Scarica Prova d'esame Python sui interessi e più Esercizi in PDF di Fondamenti di informatica solo su Docsity!

Marco,Mamei,Computer:5/10:Web:6/9:Computer:4/8:Auto:5/ Matteo,Mamei,Computer:10/10:Vacanza:6/ Sara,Rossi,Corsa:10/10:Nuoto:3/6:Jogging:7/8:Sci:4/ from fractions import Fraction d = {} with open('file.txt')as f: for l in f: l=l.strip() if len(l)>0: nome =l.split(',')[0] cognome =l.split(',')[1] s = l.split(',')[2] #print(s) t = s.split(':') #print(k) interessi = [t[i] for i in range(0,len(t),2)] percentuali = [] for i in range(1, len(t), 2): primoNum = l.split(':')[i].split('/')[0] secondoNum = l.split(':')[i].split('/')[1] percentuale = float(int(primoNum) / int(secondoNum)) percentuali.append(percentuale) if nome and cognome in d: d[nome+cognome].append([interessi,percentuali]) else: d[nome+cognome] = [interessi,percentuali] print(d) for k, v in d.items(): print(k, '--->', v) #2.Per ogni persona stampare la media dei valori di tutti i suoi interessi attività interessi_p = {}

for k,v in d.items(): interessi_p[k] = v[1] print(interessi_p) with open('2.txt','w')as f: for k,v in interessi_p.items(): somma = 0 for i in v: somma += i f.write(k+' --> '+str(Fraction(somma/len(v)).limit_denominator())) f.write('\n') #1.Stampare le persone associate ad almeno 3 interessi distinti int_no_dup = {} #interessi non duplicati for k,v in d.items(): no_dup = set(v[0]) int_no_dup[k] = list(no_dup) print(int_no_dup) with open('1.txt','w')as f: f.write('Le persone associate ad almeno 3 interessi distinti sono: ') f.write('\n') for k,v in int_no_dup.items(): if len(v) >= 3: f.write(k) f.write('\n') #4.Ordinare le persone da quella con più interessi/attività a quella con meno interessi/attività #Gli interessi ripetuti valgono 1 with open('4.txt','w')as f: ordine = sorted(int_no_dup.items(), key = lambda x:len(x[1]), reverse = True) print(ordine) for t in ordine: f.write(t[0]) f.write('\n'