Sari la conținut
Academia PythonAcademiaPython

VII.3 Structura repetitivă și combinarea celor trei structuri

Concept nou și exemplu

Structura repetitivă cu contor (echivalentul blocului Scratch „repeat 10”) se scrie în Python cu for și range():

python.py
for i in range(1, 11):
print(i, "x 5 =", i * 5)
Ce face range(1, 11)

Generează numerele de la 1 până la 10 inclusiv — 11 nu e inclus. La fiecare pas al buclei, i ia pe rând valoarea 1, apoi 2, ..., apoi 10, iar linia indentată de sub for se execută o dată pentru fiecare valoare.

Structura repetitivă condiționată (echivalentul „repeat until”/„forever if”) se scrie cu while, și se repetă cât timp o condiție rămâne adevărată:

python.py
raspuns = ""
while raspuns != "python":
raspuns = input("Care e parola? ")
print("Acces permis!")

Cele trei structuri se combină: în interiorul unei bucle putem avea o decizie (if), iar în interiorul unei decizii, o altă buclă — exact cerința programei.

python.py
for i in range(1, 11):
if i % 2 == 0:
print(i, "este par")
range(1, 10) nu ajunge la 10

Limita de sus dintr-un range() nu e inclusă niciodată — range(1, 10) generează 1, 2, ..., 9, dar nu și 10. Dacă vrei să incluzi și 10, scrie range(1, 11). E o greșeală frecventă, numită „off-by-one” (greșeală cu o unitate).