Sari la conținut
Academia PythonAcademiaPython

VIII.2 Algoritmi de prelucrare a șirurilor de valori

Concept nou și exemplu

Când numărul de valori nu e fix dinainte, se citește întâi n (câte valori urmează), apoi se parcurg valorile una câte una într-o buclă, actualizând la fiecare pas o variabilă „acumulator”:

python.py
n = int(input("Câte numere introduci? "))
suma = 0
maxim = None
for i in range(n):
x = int(input("Numărul " + str(i + 1) + ": "))
suma += x
if maxim is None or x > maxim:
maxim = x
print("Suma este", suma)
print("Cel mai mare număr este", maxim)
Cum funcționează „acumulatorul”

suma pornește de la 0 — o „cutie goală” în care adunăm, la fiecare pas al buclei, numărul citit (suma += x). maxim pornește de la None (adică „încă nu știm”) și, la fiecare pas, se actualizează doar dacă numărul curent e mai mare decât ce aveam deja reținut.

De ce maxim nu pornește de la 0

Dacă toate numerele citite sunt negative, un maxim care pornește de la 0 ar rămâne greșit la 0 — pentru că niciun număr negativ nu trece testul „e mai mare decât 0”. De asta inițializăm maxim cu prima valoare citită (aici, folosind None ca semnal „încă nu am citit nimic”), nu cu 0.