6 min lexim
Ciklet
T'i mësosh një roboti të përsërisë
Deri tani, çdo urdhër që i ke dhënë Python-it ka ecur vetëm një herë. Por programet e vërteta e bëjnë të njëjtën gjë sërish e sërish: vizatojnë katër brinjët e një katrori, ndajnë një letër për secilin lojtar, kontrollojnë çdo shkronjë të një fjale. Ta shkruash të njëjtin rresht dhjetë herë do të ishte e ngadaltë dhe e lehtë për ta gabuar. Një cikël të lejon ta shkruash urdhrin një herë të vetme dhe t'i thuash Python-it sa herë, ose në ç'kusht, ta përsërisë.
Mendoje breshkën si një robot të vogël. Për të vizatuar një katror, do që ai të shkojë përpara dhe të kthehet djathtas, katër herë. Në vend që t'i kopjosh ato dy rreshta katër herë, i mbështjell brenda një cikli. Kjo është e gjithë ideja: përsërit një bllok pune pa e përsëritur veten.
Python të jep dy cikle. Cikli while përsërit për sa kohë diçka mbetet e vërtetë. Cikli for përsërit një herë për secilin element të një sekuence. Do t'i njohim të dyja.
Cikli while: përsërit sa kohë diçka është e vërtetë
Një cikël while vazhdon ta ekzekutojë bllokun e vet për sa kohë një kusht qëndron. Në çastin që kushti bëhet i pavërtetë, Python e kapërcen ciklin dhe vazhdon më tej.
Këtu roboti numëron nga 0 e sipër dhe ndalon para se të arrijë 3:
count = 0
while count < 3:
print("Përshëndetje!")
count = count + 1
Kjo e shkruan Përshëndetje! tri herë. Lexoje ngadalë. Python kontrollon count < 3. Është e vërtetë (0 është më i vogël se 3), ndaj blloku ekzekutohet: shkruan tekstin, pastaj i shton 1 vlerës count. Tani count është 1, ende më i vogël se 3, ndaj ekzekutohet përsëri. Kur count arrin 3, kushti është i pavërtetë dhe cikli mbaron.
Rreshti count = count + 1 ka rëndësi. Nëse e harron, count mbetet përgjithmonë 0, kushti nuk bëhet kurrë i pavërtetë dhe cikli nuk ndalon kurrë. Kjo quhet cikël i pafund, dhe është gabimi më i shpeshtë me while. Çdo cikël while ka nevojë për diçka brenda tij që e afron drejt ndalimit.
Cikli for: një herë për secilin element
Cikli for është zgjedhja e natyrshme kur tashmë e di se çfarë do të përshkosh, si për shembull një listë fjalësh. Ai e ekzekuton bllokun një herë për secilin element, duke ta dhënë elementin sa herë:
fruta = ["mollë", "banane", "qershi"]
for x in fruta:
print(x)
Kjo shkruan mollë, pastaj banane, pastaj qershi. Variabli x bëhet secili frut me radhë; nuk të duhej të numëroje asgjë.
Kur do të përsëritësh një numër të caktuar herësh, çifto for me range. range(4) prodhon numrat 0, 1, 2, 3, ndaj kjo vizaton një katror:
import turtle
skk = turtle.Turtle()
for brinja in range(4):
skk.forward(100)
skk.right(90)
turtle.done()
Pra kur e përdor secilin? Përdor një cikël for kur i di elementet ose numrin që më parë, që është shumica e rasteve. Përdor një cikël while kur nuk mund ta thuash paraprakisht sa raunde do të duhen, për shembull "vazhdo të pyesësh derisa lojtari të shkruajë një përgjigje të vlefshme".
break dhe continue: të ndalosh herët dhe të kapërcesh
Ndonjëherë do të dalësh nga një cikël para se ai të mbarojë vetë. break e ndalon ciklin menjëherë. Kështu e ndal një robot që përndryshe do të lëvizte pafund:
count = 0
while True:
print("po lëviz")
count = count + 1
if count == 5:
break
while True vetvetiu do të ecte përgjithmonë, por break del jashtë sapo roboti të ketë lëvizur pesë herë.
continue është më i butë: ai kapërcen pjesën e mbetur të raundit të tanishëm dhe kalon drejt e te tjetri. Këtu shkruan vetëm numrat tek, duke kapërcyer çiftët:
for n in range(1, 7):
if n % 2 == 0:
continue
print(n)
Python të lejon gjithashtu t'i bashkangjitësh një else një cikli. Blloku else ekzekutohet një herë, pasi cikli mbaron normalisht (domethënë, kur asnjë break nuk e ka ndalur):
for i in range(1, 4):
print(i)
else:
print("Pa break")
Kjo shkruan 1, 2, 3, dhe pastaj Pa break.
Provo veten
- Në shembullin e numërimit, pse ka rëndësi rreshti
count = count + 1? Çfarë do t'i ndodhte ciklit po ta fshije atë? - Do të vizatosh një gjashtëkëndësh (gjashtë brinjë) me breshkën. Do të zgjidhje një cikël
forapo një cikëlwhile, dhe përafërsisht çfarë do të vendosje brenda tij? - Cili është ndryshimi mes asaj që bën
breakdhe asaj që bëncontinuekur Python i arrin brenda një cikli?
Nga vjen ky mësim
Ndërtuar mbi
- Programming in a Data World: dosja e Leksionit 3 (ciklet) dhe Notebook-u i Leksionit
- Video: 3.0 Loops
Kurset e alphaPlan ndërtohen mbi programe të zhvilluara në klasë, e nuk shpiken për web-in. Kur një pohim mbështetet mbi një standard të jashtëm ose mbi një rast të raportuar, ai emërtohet më sipër që ta kontrollosh vetë e të mos na besosh në fjalë.
Ky kurs u zhvillua nga alphaPlan Center mbi bazën e programeve të realizuara në partneritet me rrjetin American Corners.
Gjete diçka të paqartë, të vjetruar ose që mund të përmirësohet? Sugjero një përmirësim