Python-da isə dövrə. Necə işləyir, istifadə nümunələri

Döngələr istənilən dilin əsas alətlərindən biridir. Python-da iki əsas döngə var, onlardan biri whiledır. Bunu nəzərdən keçirin, həm də şəkli daha yaxşı başa düşmək üçün bir daha. Həqiqətən, oxşar bir şeylə müqayisədə hər hansı bir materialı başa düşmək daha asandır, elə deyilmi?

Dövr anlayışı

Müəyyən bir hərəkəti bir neçə dəfə yerinə yetirmək lazım olduqda bir döngə lazımdır. Bu, çox sadədir, çünki əslində dövrlər üçün tətbiq dairəsi daha genişdir. Python-da iki əsas növ döngə var: for və while. üçün ən populyardır.

Xüsusi hərəkətlərə əlavə olaraq, müəyyən bir nöqtəyə qədər müxtəlif kod parçalarını dövr edə bilərsiniz. Bu, müəyyən bir neçə dəfə və ya müəyyən bir şərt doğru olduğu müddətcə ola bilər.

Döngələrin növlərini başa düşməyə başlamazdan əvvəl və xüsusilə while, biz hələ də iterasiyanın nə olduğunu başa düşməliyik. Bu, cari proqramın icrası daxilində cari dövr ərzində hərəkətin və ya hərəkətlər ardıcıllığının bir təkrarıdır.

Üçün Velosiped

Bizim For döngəmiz bir çox başqa dillərdə olduğu kimi sayğac deyil. Onun vəzifəsi müəyyən dəyərlər ardıcıllığını sadalamaqdır. Bu nə deməkdir? Tutaq ki, bizdə elementlərin siyahısı var. Birincisi, loop birinci, ikinci, üçüncü və s.

Python-da bu döngənin üstünlüyü ondan ibarətdir ki, dövrədən nə vaxt çıxacağınızı bilmək üçün elementin indeksini təyin etməyə ehtiyac yoxdur. Hər şey avtomatik olaraq ediləcək.

>>> spisok = [10, 40, 20, 30]

>>> spisok elementi üçün:

… çap (element + 2)

...

12

42

22

32

Nümunəmizdə dəyişəndən istifadə etdik element for əmrindən sonra. Ümumiyyətlə, ad hər hansı bir şey ola bilər. Məsələn, məşhur bir təyinat i. Və hər iterasiya ilə bu dəyişənə siyahıdan müvafiq söz adlandırdığımız xüsusi bir obyekt təyin ediləcək.

Bizim vəziyyətimizdə siyahı 10,40,20,30 ədədlərinin ardıcıllığıdır. Hər iterasiyada dəyişəndə ​​müvafiq dəyər görünür. Məsələn, döngə başlayan kimi dəyişən element 10 dəyəri təyin edilir. Növbəti təkrarlamada on rəqəm 40-a, üçüncü dəfə 20-yə çevrilir və nəhayət, döngənin sonuncu təkrarlanmasında 30-a çevrilir.

Dövrün sonu üçün siqnal siyahıdakı elementlərin sonudur.

Əgər siz digər proqramlaşdırma dillərində olduğu kimi dəyərlərin klassik sadalamasını yerinə yetirmək üçün dövrəyə ehtiyacınız varsa, bizə lazım olan dəyərə qədər natural ədədlər ardıcıllığı ilə siyahı yaratmalısınız.

>>> spisok = [1,2,3,4,5]

Və ya funksiyadan istifadə edin len(), siyahının uzunluğunu müəyyən etmək üçün. Ancaq bu vəziyyətdə bir döngə istifadə etmək daha yaxşıdır isə, çünki dəyişəndən istifadə etməyə ehtiyac yoxdur.

Siyahıdakı dəyərlərin ardıcıllığını dəyişdirmək lazımdırsa, döngə edin üçün və burada xilasetmə gəlir. Bunun üçün hər təkrarlamada siyahının hər bir elementinə müvafiq qiymət verilməlidir.

Halqa

Dövrdən fərqli olaraq üçün, bu sadəcə ardıcıllığın, döngənin dəyərləri üzərində təkrarlanır isə daha çox istifadəyə malikdir. Bu tip dövrlərin adı “hələ” kimi tərcümə olunur. Yəni, “nə qədər”.

Bu, bütün proqramlaşdırma dillərində olan universal bir döngədir. Və müəyyən mənada şərti operatora bənzəyir yew, müəyyən bir şərtin yerinə yetirilib-yetirilmədiyini yoxlamaq üçün yoxlama aparır. Yalnız şərti operatordan fərqli olaraq, isə yoxlanışı bir dəfə yox, hər iterasiyada həyata keçirir. Və yalnız şərt yanlış olarsa, dövrə başa çatır və ondan sonrakı əmr yerinə yetirilir. Sadə sözlə desək, işlədiyi vəziyyət artıq keçərli deyilsə.

Bir dövrə çəksək isə sadə şəkildə, bu belə bir sxemdən istifadə etməklə həyata keçirilir.Python-da isə dövrə. Necə işləyir, istifadə nümunələri

Proqramın əsas qolu (döngüdən kənarda işləyir) bu şəkildə mavi düzbucaqlılarla təsvir edilmişdir. Firuzə dövrün gövdəsini təmsil edir. Öz növbəsində, romb hər iterasiyada yoxlanılan şərtdir.

velosiped isə iki istisna ilə nəticələnə bilər:

  1. Döngənin əvvəlində məntiqi ifadə doğru deyilsə, o, icradan əvvəl tamamlanaraq sadəcə başlamaz. Ümumiyyətlə, bu vəziyyət normaldır, çünki müəyyən şərtlərdə tətbiq loop gövdəsində ifadələrin olmasını təmin etməyə bilər.
  2. İfadə həmişə doğrudursa, bu, döngəyə səbəb ola bilər. Yəni, dövrün sonsuz sürüşməsinə. Buna görə də belə proqramlarda həmişə dövrədən və ya proqramdan çıxış ifadəsi olmalıdır. Bununla belə, proqram müəyyən bir şərtin doğru və ya yanlışlığını müəyyən edə bilsəydi, bu vəziyyət yaranacaqdır. Bunu edə bilmədisə, proqramın dayandırılması ilə bir səhv qaytarılır. Və ya səhvi idarə edə bilərsiniz və sonra bu baş verərsə, müəyyən kod icra ediləcək.

Bir səhvi necə idarə etmək üçün çox sayda seçim ola bilər. Məsələn, proqram istifadəçidən məlumatları düzgün daxil etməyi tələb edə bilər. Beləliklə, bir şəxs yalnız müsbət ola biləcəyi mənfi bir rəqəm göstərdisə və ya yalnız rəqəmlərin olması lazım olan hərfləri daxil etdisə, proqram bu barədə məlumat verə bilər.

While Döngü Nümunələri

Bu vəziyyətdə bir səhvi idarə edən kod nümunəsidir.

n = input("Tam ədəd daxil edin:") 

isə type(n) != int:

    Keçir:

        n = int(n)

    ValueError xaric:

        çap ("Yanlış giriş!")

        n = input("Tam ədəd daxil edin:") 

əgər n % 2 == 0:

    çap (“hətta”)

başqa:

    çap ("Tək")

Nəzərə alın ki, Python mürəkkəb kod konstruksiyalarını elan etmək üçün iki nöqtədən istifadə edir.

Yuxarıdakı kodda biz nömrənin tam ədəd olub olmadığını yoxlamalı olduğumuz şərt kimi müəyyən etdik. Əgər belədirsə, false qaytarılır. Yoxdursa, doğrudur.

Kodun ikinci hissəsində operatorun istifadə edildiyi yer if, bölmə əməliyyatından sonra qalanı tapmaq üçün % operatorundan istifadə etdik. Növbəti addım nömrənin cüt olub olmadığını yoxlamaqdır. Yoxdursa, bu halda qalan birdir. Müvafiq olaraq, rəqəm təkdir. 

Sadə dillə desək, yuxarıdakı kod əvvəlcə istifadəçinin daxil etdiyi sətirin nömrə olub olmadığını yoxlayır. Əgər belədirsə, onda ikiyə bölmənin qalığının olub-olmadığını yoxlamaq üçün ikinci yoxlama aparılır. Lakin ikinci blok istifadəçinin daxil etdiyi dəyər rəqəmli olana qədər icra olunmayacaq.

Yəni, vəziyyət yaranana qədər dövrə müntəzəm olaraq yerinə yetiriləcəkdir. Bu vəziyyətdə, belə işləyir. 

Yəni, əksinə gedə bilərsiniz: hadisə yalan olana qədər müəyyən bir hərəkəti döndərin.

Kodun təhlili

İndi bu kodun necə işlədiyinə daha ətraflı baxaq. Bunu etmək üçün addım-addım təhlil edəcəyik.

  1. Əvvəlcə istifadəçi n dəyişəni tərəfindən qəbul edilən sətirə daxil olur. 
  2. Döngədən istifadə isə bu dəyişənin növü yoxlanılır. İlk girişdə bərabər deyil int. Ona görə də sınaq nəticəsində bu şərtin doğru olduğu məlum olur. Beləliklə, döngə gövdəsi daxil edilir.
  3. Operatorun köməyi ilə cəhd sətri nömrəyə çevirməyə çalışırıq. Bu edilirsə, heç bir səhv baş vermir. Müvafiq olaraq, onu emal etməyə ehtiyac yoxdur. Buna görə də tərcüməçi döngənin əvvəlinə qayıdır və yoxlamanın nəticələrinə görə onun tam ədədə çevrildiyi məlum olur. Beləliklə, 7-ci addıma keçək
  4. Dönüşüm uğursuz olarsa, ValueError atılır. Bu halda proqram axını istisna işləyiciyə göndərilir.
  5. İstifadəçi n dəyişəninə təyin edilən yeni dəyər daxil edir.
  6. Tərcüməçi 2-ci addıma qayıdır və yenidən yoxlayır. Əgər bu, tam ədəddirsə, 7-ci addıma keçin. Əks halda, 3-cü addıma uyğun olaraq çevrilməyə yenidən cəhd edilir.
  7. Operatorun köməyi ilə if Ədədi 2-yə böldükdən sonra qalığın olub olmadığını müəyyən edir. 
  8. Əks halda, "hətta" mətni qaytarılır.
  9. Əks halda, “tək” mətni qaytarılır.

İndi belə bir nümunəyə nəzər salın. Bu dövrün neçə dəfə keçəcəyini müəyyən etməyə çalışın?

cəmi = 100 

i = 0

mən < 5 olarkən:

    n = int(giriş())

    cəmi = cəmi — n

    i = i + 1 

çap ("Qalan", cəmi)

Düzgün cavab 5-dir. İlkin olaraq dəyişənin qiyməti i - sıfır. Tərcüməçi dəyişənin bərabər olub olmadığını yoxlayır i 4 və ya daha az. Əgər belədirsə, o zaman dəyər qaytarılır. doğru, və dövrə müvafiq olaraq yerinə yetirilir. Dəyər bir dəfə artır.

Birinci iterasiyadan sonra dəyişənin qiyməti 1 olur. Yoxlama aparılır və proqram bu rəqəmin yenidən 5-dən kiçik olduğunu başa düşür. Müvafiq olaraq dövrə gövdəsi ikinci dəfə yerinə yetirilir. Addımlar oxşar olduğundan, dəyər də bir artır və dəyişən indi 2-yə bərabərdir.

Bu dəyər də beşdən azdır. Sonra döngə üçüncü dəfə yerinə yetirilir, dəyişənə əlavə olunur i 1 və ona 3 dəyəri təyin edilir. Bu, yenə beşdən azdır. Və beləliklə, dəyişənin dəyəri olan dövrənin altıncı iterasiyasına gəlir i 5-ə bərabərdir (axı, xatırladığımız qədəri ilə əvvəlcə sıfır idi). Müvafiq olaraq, bu şərt sınaqdan keçmir və dövrə avtomatik olaraq dayandırılır və ondan kənarda olan növbəti mərhələyə keçid (və ya aşağıdakı addımlar təmin edilmədikdə proqramın dayandırılması) həyata keçirilir.

Dövr əks istiqamətdə də baş verə bilər. Burada hər bir sonrakı iterasiya ilə dəyişənin cari dəyərindən birinin çıxıldığı kod nümunəsidir. 

cəmi = 100 

cəmi > 0 olduqda:

    n = int(giriş())

    cəmi = cəmi — n 

çap ("Resurs tükəndi")

Bu proqramın nə etdiyini təxmin etməyə çalışın! Bunu bir dəyişəndə ​​təsəvvür edin ümumi proqram resursu haqqında məlumat saxlanılır. Hər dəfə tərcüməçi resursun olub-olmadığını yoxlayır. Əks təqdirdə, "Resurs tükəndi" mətni göstərilir və proqram bağlanır. Döngənin hər iterasiyası ilə resurs istifadəçinin göstərdiyi nömrə ilə azalır.

İndi ev tapşırığı. Yuxarıdakı kodu dəyişdirməyə çalışın ki, dəyişən fiziki olaraq mənfi hala gəlməsin. 

4 Şərhlər

  1. si kodu ahaan usoo gudbi

Cavab yaz