Ce vei învăța astăzi?
După această lecție vei folosi funcțiile predefinite pentru colecții (grupuri de elemente, de exemplu listele): len, min, max și sum, pe liste de numere.
len, min, max și sum pe liste
len(listă) întoarce numărul de elemente. min(listă) întoarce cel mai mic element. max(listă) întoarce cel mai mare element. sum(listă) întoarce suma elementelor.
| Funcție | Ce face | Exemplu | Rezultat |
|---|---|---|---|
| len([2, 4, 6]) | Numărul de elemente | len([2, 4, 6]) | 3 |
| min([3, 9, 5]) | Cel mai mic element | min([3, 9, 5]) | 3 |
| max([3, 9, 5]) | Cel mai mare element | max([3, 9, 5]) | 9 |
| sum([1, 2, 3]) | Suma elementelor | sum([1, 2, 3]) | 6 |
Media notelor cu funcții predefinite
Media aritmetică (suma elementelor împărțită la numărul lor) a elementelor unei liste se calculează simplu cu funcțiile predefinite: sum(v) / len(v).
note = [7, 9, 8, 10, 6]
print("Numar de note:", len(note))
print("Nota minima:", min(note))
print("Nota maxima:", max(note))
print("Suma notelor:", sum(note))
print("Media:", sum(note) / len(note))
Reține: pentru medie împărțim sum(v) la len(v). Dacă vrem media cu o zecimală, putem folosi round(media, 2).
Performanța sportivilor
Dacă o listă conține scorurile obținute de sportivi, putem afla imediat cel mai bun scor cu max(), cel mai slab cu min() și media cu sum()/len().
scoruri = [12, 15, 9, 18, 14]
print("Numar de concurenti:", len(scoruri))
print("Cel mai bun scor:", max(scoruri))
print("Cel mai slab scor:", min(scoruri))
print("Media scorurilor:", sum(scoruri) / len(scoruri))
Exercițiu de completare
Completează enunțul cu cuvintele potrivite:
Numărul de elemente dintr-o listă se află cu funcția ______(v). Cel mai mic element se află cu ______(v), iar cel mai mare cu ______(v). Pentru a aduna toate elementele folosim ______(v).
Bancă de cuvinte:
Test de înțelegere
Test rapid - funcții predefinite pentru colecții:
1. Care este rezultatul expresiei len([2, 4, 6])?
2. Care este rezultatul expresiei max([3, 9, 5])?
3. Care este rezultatul expresiei sum([1, 2, 3])?
Test suplimentar
Test suplimentar - funcții pentru colecții:
1. Care este rezultatul expresiei len("informatica")?
2. Care este rezultatul expresiei min([8, 3, 5])?
3. Care este rezultatul expresiei sum([2, 4, 6]) / len([2, 4, 6])?
Aprofundare
sorted() versus sort(): metoda v.sort() modifică lista existentă, pe când funcția sorted(v) întoarce o listă nouă sortată, fără să atingă originalul. Pentru ordine descrescătoare folosim reverse=True.
- sum cu valoare inițială:
sum(v, 10)începe suma de la 10 - util când adunăm peste un total existent. - Lista goală:
min([]),max([])șisum([])produc ValueError; verificăm întâi culen(v) == 0. - sum pe șiruri:
sum(["a", "b"])dă TypeError; șirurile se concatenează cu"".join(lista). - min/max pe cuvinte: pe liste de șiruri, comparația este lexicografică (ordinea din dicționar).
- Alte metode utile:
v.count(x)(de câte ori apare x),v.index(x)(prima poziție) și operatorulx in v(existența valorii).
PbInfo - Media notelor
Enunț:
Cerință: Se citesc n note ale unui elev. Să se afișeze media aritmetică a notelor.
Date de intrare:
Programul citește de la tastatură numărul n, apoi n note, pe o singură linie.
Date de ieșire:
Programul va afișa pe ecran media aritmetică a celor n note.
Restricții și precizări:
Valorile citite sunt numere întregi, iar n este un număr natural, cu 1 <= n <= 1000.
Exemplu:
Intrare:
5 7 9 8 10 6
Ieșire:
8.0
Cum gândim soluția:
- Citim n, apoi lista de note cu
map(int, input().split()) - Calculăm suma cu
sum(v)și numărul culen(v) - Afișăm media:
sum(v) / len(v)
Scrie soluția în Python:
Soluție corectă:
n = int(input()) v = list(map(int, input().split())) print(sum(v) / len(v))
Ce învățăm: media se calculează rapid cu funcțiile predefinite sum și len.
PbInfo - Minim și maxim
Enunț:
Cerință: Se dau elementele unei liste de numere. Să se afișeze minimul și maximul din listă.
Date de intrare:
Programul citește de la tastatură elementele listei, pe o singură linie.
Date de ieșire:
Programul va afișa minimul și maximul, separate printr-un spațiu.
Restricții și precizări:
Valorile citite sunt numere întregi, iar n este un număr natural, cu 1 <= n <= 1000.
Exemplu:
Intrare:
3 9 5 1 7
Ieșire:
1 9
Cum gândim soluția:
- Citim lista cu
map(int, input().split()) - Folosim
min(v)pentru minim - Folosim
max(v)pentru maxim și afișăm
Scrie soluția în Python:
Soluție corectă:
v = list(map(int, input().split())) print(min(v), max(v))
Ce învățăm: min și max scanează lista și întorc cel mai mic, respectiv cel mai mare element.
Exercițiul Practic: Funcții predefinite pe liste
Sarcini de lucru
Aplică len, min, max și sum pe liste de numere
Sarcina 1: Performanța sportivilor
Cerință: Se dau scorurile obținute de sportivi într-o competiție. Scrie un program care citește lista de scoruri și afișează media, minimul și maximul.
Soluție:
scoruri = list(map(int, input().split()))
print("Media:", sum(scoruri) / len(scoruri))
print("Minimul:", min(scoruri))
print("Maximul:", max(scoruri))
Verifică: folosim sum, len, min și max pentru a analiza rapid întreaga listă de scoruri.
Sarcina 2: Numărul, suma și media
Cerință: Scrie un program care citește o listă de numere și afișează numărul de elemente, suma lor și media lor, folosind funcțiile predefinite.
Soluție:
v = list(map(int, input().split()))
print("Numar elemente:", len(v))
print("Suma:", sum(v))
print("Media:", sum(v) / len(v))
Verifică: o singură citire de listă este suficientă pentru a calcula toate cele trei rezultate.