додека јамка во Пајтон. Како функционира, примери за употреба

Јамките се една од главните алатки на секој јазик. Постојат две основни циклуси во Пајтон, од кои едната е while. Размислете за тоа, а исто така за подобро разбирање на сликата, уште една. Навистина, во споредба со нешто слично, многу е полесно да се разбере каков било материјал, нели?

Концептот на циклус

Потребна е јамка кога одредена акција треба да се изврши повеќе пати. Ова е многу поедноставено, бидејќи во реалноста опсегот на апликации за циклуси е многу поширок. Постојат два главни типа на јамки во Пајтон: за и додека. Најпопуларниот е за.

Покрај специфичните дејства, можете да вклучите различни парчиња код до одредена точка. Ова може да биде одреден број пати, или се додека одредена состојба е вистинита.

Пред да почнеме да ги разбираме типовите на јамки и додека, особено, сè уште треба да разбереме што е повторување. Ова е едно повторување на дејство или низа дејства за време на тековниот циклус во рамките на тековното извршување на апликацијата.

Циклус за

Нашата јамка For не е бројач, како во многу други јазици. Неговата задача е да наброи одредена низа на вредности. Што значи тоа? Да речеме дека имаме листа на елементи. Прво, јамката ги зема првата, втората, третата итн.

Предноста на оваа јамка во Python е тоа што не треба да го одредувате индексот на елементот за да знаете кога да излезете од циклусот. Сè ќе се направи автоматски.

>>> список = [10, 40, 20, 30]

>>> за елемент во список:

… печатење (елемент + 2)

...

12

42

22

32

Во нашиот пример, ја користевме променливата елемент по командата за. Во принцип, името може да биде што било. На пример, популарна ознака е i. И со секое повторување, на оваа променлива ќе и се додели специфичен објект од списокот, кој го нарековме соодветниот збор.

Во нашиот случај, списокот е низа од броеви 10,40,20,30. При секое повторување, соодветната вредност се појавува во променливата. На пример, штом ќе започне циклусот, променливата елемент се доделува вредноста 10. На следното повторување, десетката се претвора во бројот 40, третиот пат се претвора во бројот 20 и на крајот, на последната итерација на јамката, се претвора во 30.

Сигналот за крајот на циклусот е крајот на елементите во списокот.

Ако ви треба циклусот за да извршите класично набројување на вредности, како и во другите програмски јазици, треба да креирате листа со низа од природни броеви до вредноста што ни треба.

>>> список = [1,2,3,4,5]

Или користете ја функцијата само (), за да се одреди должината на списокот. Но, во овој случај подобро е да се користи јамка додека, бидејќи нема потреба да се користи променлива.

Ако треба да ја смените низата вредности во списокот, завртете ја за и тука доаѓа на помош. За да го направите ова, при секое повторување, на секој елемент од листата мора да му се додели соодветна вредност.

Додека јамка

За разлика од циклусот за, кој едноставно се повторува над вредностите на низата, јамката додека има повеќе употреби. Името на овој тип на циклуси се преведува како „сè уште“. Тоа е, „до“.

Ова е универзална јамка што се наоѓа во сите програмски јазици. И на некој начин наликува на условен оператор Тис, кој врши проверка дали е исполнет одреден услов. Само за разлика од условниот оператор, додека врши проверка на секое повторување, не само еднаш. И само ако условот е неточен, циклусот завршува и командата што следи се извршува. Со едноставни зборови, ако веќе не важи ситуацијата во која работи.

Ако нацртаме циклус додека поедноставено, ова се прави со користење на таква шема.додека јамка во Пајтон. Како функционира, примери за употреба

Главната гранка на програмата (која работи надвор од јамката) е прикажана на оваа слика со сини правоаголници. Тиркизната боја го претставува телото на циклусот. За возврат, ромб е услов што се проверува при секое повторување.

циклус додека може да резултира со два исклучоци:

  1. Ако на почетокот на циклусот логичкиот израз не се врати точно, тогаш тој едноставно не започнува, откако ќе заврши пред извршувањето. Во принцип, оваа ситуација е нормална, бидејќи под одредени околности, апликацијата може да не обезбеди присуство на изрази во телото на јамката.
  2. Ако изразот е секогаш вистинит, ова може да доведе до јамка. Односно до бескрајното лизгање на циклусот. Затоа, во такви програми, секогаш треба да има изјава за излез од циклусот или програмата. Сепак, оваа ситуација ќе се појави ако програмата може да ја утврди вистинитоста или неточноста на одредена состојба. Ако таа не успеа да го стори тоа, тогаш се враќа грешка со прекинот на програмата. Или можете да се справите со грешката, а потоа, доколку се појави, одреден код ќе се изврши.

Може да има огромен број опции за тоа како да се справите со грешка. На пример, програмата може да побара од корисникот правилно да внесе податоци. Значи, ако некое лице наведе негативен број каде што може да биде само позитивен, или внесе букви каде што треба да има само броеви, програмата може да каже за тоа.

Додека Примери за јамка

Еве пример за код кој се справува со грешка во овој случај.

n = влез („Внесете цел број:“) 

додека тип(n) != int:

    Обидете:

        n = int(n)

    освен ValueError:

        печатење („Погрешен запис!“)

        n = влез („Внесете цел број:“) 

ако n % 2 == 0:

    печатење („Дури“)

друго:

    печатење („Чудно“)

Имајте на ум дека Python користи две точки за да декларира сложени конструкции на код.

Во кодот погоре, дефиниравме како услов дека треба да провериме дали бројот е цел број. Ако да, тогаш се враќа false. Ако не, тогаш е вистина.

Во вториот дел од кодот, каде што се користи операторот if, го користевме операторот % за да го пронајдеме остатокот по операцијата за делење. Следниот чекор е да проверите дали бројот е парен. Ако не, тогаш остатокот е еден во овој случај. Според тоа, бројот е непарен. 

Во едноставни термини, горната шифра прво проверува дали низата внесена од корисникот е број. Ако да, тогаш се прави втора проверка за да се види дали има остаток од делењето со два. Но, вториот блок нема да се изврши додека вредноста што ја внесе корисникот не биде нумеричка.

Односно, јамката ќе се извршува редовно додека не се појави состојбата. Во оваа ситуација, тоа функционира вака. 

Односно, можете да тргнете од спротивното: завртете одредено дејство додека настанот не стане лажен.

Парсирање на кодови

Сега да видиме подетално како функционира овој код. За да го направите ова, ќе го анализираме чекор по чекор.

  1. Прво, корисникот внесува низа, која е прифатена од променливата n. 
  2. Користење на јамка додека се проверува типот на оваа променлива. На првиот влез, тоа не е еднакво int. Затоа, како резултат на тестот, беше откриено дека оваа состојба е вистинита. Затоа, се внесува телото на јамката.
  3. Со помош на оператор се обиде ние се обидуваме да конвертираме низа во број. Ако ова е направено, тогаш не се појавува грешка. Според тоа, нема потреба да се обработува. Затоа, толкувачот се враќа на почетокот на јамката и според резултатите од проверката, излегува дека тој станал цел број. Значи, да одиме на чекор 7
  4. Ако конверзијата беше неуспешна, тогаш се фрла ValueError. Во овој случај, протокот на програмата се испраќа до управувачот освен.
  5. Корисникот внесува нова вредност, која се доделува на променливата n.
  6. Преведувачот се враќа на чекор 2 и повторно проверува. Ако е цел број, одете на чекор 7. Ако не, конверзијата се обидува повторно според чекор 3.
  7. Со помош на оператор if Определува дали има остаток по делење на број со 2. 
  8. Ако не, се враќа текстот „дури“.
  9. Ако не, се враќа текстот „чудно“.

Размислете сега за таков пример. Обидете се да одредите колку пати ќе помине овој циклус?

вкупно = 100 

i = 0

додека јас < 5:

    n = int(влез())

    вкупно = вкупно — n

    i = i + 1 

печатење („Преостанати“, вкупно)

Точниот одговор е 5. Првично, вредноста на променливата i - нула. Толкувачот проверува дали променливата е еднаква i 4 или помалку. Ако да, тогаш вредноста се враќа. вистина, и јамката се извршува соодветно. Вредноста се зголемува за еден.

По првото повторување, вредноста на променливата станува 1. Се врши проверка и програмата разбира дека овој број е повторно помал од 5. Според тоа, телото на јамката се извршува по втор пат. Бидејќи чекорите се слични, вредноста исто така се зголемува за еден, а променливата сега е еднаква на 2.

Оваа вредност е исто така помала од пет. Потоа јамката се извршува по трет пат, додадена на променливата i 1 и му се доделува вредност 3. Ова е повторно помалку од пет. И така доаѓа до шестата итерација на јамката, на која вредноста на променливата i е еднакво на 5 (на крајот на краиштата, првично беше нула, колку што се сеќаваме). Соодветно на тоа, оваа состојба не го положи тестот, а јамката автоматски се прекинува и се врши преминот кон следниот чекор, кој е надвор од него (или завршување на програмата, доколку следните чекори не се обезбедени).

Циклусот може да се случи и во спротивна насока. Еве еден пример за код каде што, со секоја наредна итерација, еден се одзема од моменталната вредност на променливата. 

вкупно = 100 

додека вкупно > 0:

    n = int(влез())

    вкупно = вкупно — n 

печатење („Исцрпени ресурси“)

Обидете се да погодите што прави оваа програма! Замислете дека во променлива вкупниот се чуваат информации за програмскиот ресурс. Секој пат кога толкувачот проверува дали ресурсот постои. Ако не, тогаш се прикажува текстот „Resource exhausted“ и програмата се затвора. И со секое повторување на циклусот, ресурсот се намалува за бројот што го одредува корисникот.

И сега домашна задача. Обидете се да го промените горниот код за да не може променливата физички да стане негативна. 

4 Коментари

  1. си код ахаан усоо гудби

Оставете Одговор