12: Петље


У овој лекцији се упознајемо са петљама. Петље су згодан начин да рачунар изврши исту ствар (или сличну ствар) више пута, изнова и изнова. Анализираћемо две врсте петљи: while петље и for петље.


while
петља

while команда понавља део кода изнова и изнова, све док је задовољeн неки услов. Ево примера:

 

Структура while петље:

  • Прва линија је while «uslov»: где је «uslov» израз који враћа true или false ( Boolean израз, слично if условима).
  • Затим имамо увучен део кода (блок, такође слично као код if конструкције). Тај код уствари садржи команде које желимо да се понављају изнова и изнова. Овај блок кода се назива тело.
  • Када покренемо програм, следеће ствари се понављају:
    • Проверава се истинитост услова. Ако је услов True, онда се тело извршава и затим се понавља то испочетка, све док услов не буде False. Тада петља стаје са радом.


У примеру изнад, тело петље се изнова извршава, све док ostaloSekundi не буде једнако 0.


Вежба кодирања: Одбројавање
Написати програм у којем се одбројавају бројеви од 1 до 10, и сваки од тих бројева се исписује. Када се стигне до 10, исписује се порука "Bum!". Користити while петљу.
Можете унети улаз за програм у поље испод.

 

Помоћу петљи, можемо да напишемо програм који ће да се извршава вечно, користећи бесконачну петљу.


Пример: бесконачна петља


for
петља

Постоји још једна врста петље у Python-у која се зове for петља. У разним ситуацијама се могу користити и for и while петља, али корисно је знати обе петље. For петља се обично користи када знамо колико пута треба да нам се понови неки корак, док се while петља у већини случајева користи када се не зна колико ће корака бити потребно да се понови. For петљом се лако крећемо кроз неки опсег бројева.


Ево примера for петље:

for петљом се можемо кретати и кроз неки низ:

Пример: for петљa

 

Структура for петље је следећа:

for «imePromenljive» in range(«pocetnaVrednost», «krajnjaVrednost»):

   «uvucen blok komandi, telo petlje»

 

Као и у while петљи, и овде тело, тј. блок команди може садржати више редова. Ти редови морају бити поравнато увучени. Прво се тело петље извршава узимајући да сје вредност променљиве imePromenljive једнака променљивој pocetnaVrednost. Онда се тело поново изврши, али сада је imePromenljive једнако pocetnaVrednost+1. Затим се опет изврши тело за imePromenljive=pocetnaVrednost+2. Овај поступак се понавља све док imePromenljive не постане једнако krajnjaVrednost-1, затим се петља зауставља.

 

Дакле, петља се завршава са krajnjaVrednost-1, a не krajnjaVrednost!

 

Пример: Без тројке

 

Пример: 5×5
Овај код штампа 5×5 квадрат попуњен јединицама.

Напомена: када помножимо број Х са 10, и додамо 1, то буквално значи као да смо додали цифру 1 на крају Х. На пример,  (1867*10)+1=18671.

 

Вежба кодирања: Троугао са јединицама
Измените претходни програм тако што, уместо квадрата, штампа троугао попуњен јединицама облика ◤. Такође, уместо да дужина странице буде 5, нека у овом задатку буде унесена помоћу input(). На пример, за улаз 3, излаз ће бити:   111 11 1  
Можете унети улаз за програм у поље испод.

 

break и continue команде

break командом се "насилно" излази из while и for петље. break изазива моментални скок на команду иза краја тела петље. Ево примера коришћења break команде, учитавају се линије улаза све док линија улаза не буде "KRAJ".

Пример: Пролазак кроз све линије улаза

 

continue команда чини да се прескочи истатак петље у тренутном кораку (итерацији), и затим се понавља извршење петље, али за следећи корак (итерацију).

 

Пример: баксуз

 

Следи пример који комбинује break и continue команде.

 

 

Вежба кодирања: Квадратни бројеви
Квадратни бројеви су цели бројеви облика K × K, на пример 9 је квадратни број, јер је 3 × 3 = 9. Написати програм који учитава цео број n, и штампа све позитивне квадратне бројеве који су мањи од n, у неопадајућем поретку. У свакој линији одштампати по један број. За улаз 16, излаз ће бити: 1 4 9
Можете унети улаз за програм у поље испод.


Вежба кодирања: Налажење чинилаца
Ако је a × b = n, a × b зовемо факторизацијом броја n. Написати програм који за унети цео број n штампа све факторизације броја n. На пример, зa n=10 треба одштампати.
Можете унети улаз за програм у поље испод.