kamēr cilpa Python. Kā tas darbojas, lietošanas piemēri

Cilpas ir viens no galvenajiem jebkuras valodas rīkiem. Python ir divas pamata cilpas, no kurām viena ir while. Apsveriet to, kā arī, lai labāk izprastu attēlu, vēl vienu. Patiešām, salīdzinot ar kaut ko līdzīgu, ir daudz vieglāk saprast jebkuru materiālu, vai ne?

Cikla jēdziens

Cilpa ir nepieciešama, ja noteikta darbība ir jāveic vairākas reizes. Tas ir ļoti vienkāršoti, jo patiesībā ciklu pielietojuma klāsts ir daudz plašāks. Python ir divi galvenie cilpu veidi: for un while. Populārākais ir paredzēts.

Papildus konkrētām darbībām līdz noteiktam punktam varat cilpot dažādas koda daļas. Tas var būt noteikts reižu skaits vai tik ilgi, kamēr konkrēts nosacījums ir patiess.

Pirms sākam izprast cilpu veidus un jo īpaši, mums joprojām ir jāsaprot, kas ir iterācija. Šis ir viens darbības vai darbību secības atkārtojums pašreizējā cikla laikā pašreizējās lietojumprogrammas palaišanas ietvaros.

Cikls Par

Mūsu For cilpa nav skaitītājs, kā tas ir daudzās citās valodās. Tās uzdevums ir uzskaitīt noteiktu vērtību secību. Ko tas nozīmē? Pieņemsim, ka mums ir elementu saraksts. Pirmkārt, cilpa aizņem pirmo, otro, trešo utt.

Šīs cilpas priekšrocība Python ir tāda, ka jums nav jānosaka elementa indekss, lai zinātu, kad jāiziet no cilpas. Viss tiks darīts automātiski.

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

>>> elementam spisok:

… drukāt (elements + 2)

...

12

42

22

32

Mūsu piemērā mēs izmantojām mainīgo elements pēc for komandas. Kopumā nosaukums var būt jebkas. Piemēram, populārs apzīmējums ir i. Un ar katru iterāciju šim mainīgajam tiks piešķirts konkrēts objekts no saraksta, ko mēs nosaucām par atbilstošo vārdu.

Mūsu gadījumā saraksts ir skaitļu secība 10,40,20,30. Katrā iterācijā mainīgajā parādās atbilstošā vērtība. Piemēram, tiklīdz cilpa sākas, mainīgais elements tiek piešķirta vērtība 10. Nākamajā iterācijā desmit pārvēršas par skaitli 40, trešajā reizē tas pārvēršas par skaitli 20 un, visbeidzot, cilpas pēdējā atkārtojumā tas pārvēršas par 30.

Cikla beigu signāls ir saraksta elementu beigas.

Ja jums ir nepieciešama cilpa, lai veiktu klasisku vērtību uzskaitīšanu, tāpat kā citās programmēšanas valodās, jums vajadzētu izveidot sarakstu ar naturālu skaitļu secību līdz vajadzīgajai vērtībai.

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

Vai arī izmantojiet funkciju len (), lai noteiktu saraksta garumu. Bet šajā gadījumā labāk ir izmantot cilpu kamēr, jo nav nepieciešams izmantot mainīgo.

Ja jums ir jāmaina vērtību secība sarakstā, veiciet cilpu forums un te nāk palīgā. Lai to izdarītu, katrā iterācijā katram saraksta elementam ir jāpiešķir atbilstoša vērtība.

Kamēr cilpa

Atšķirībā no cikla forums, kas vienkārši atkārto secības, cilpas vērtības kamēr ir vairāk lietojumu. Šāda veida ciklu nosaukums tiek tulkots kā “vēl”. Tas ir, “līdz”.

Šī ir universāla cilpa, kas ir atrodama visās programmēšanas valodās. Un dažos veidos tas atgādina nosacītu operatoru īve, kas veic pārbaudi, lai noskaidrotu, vai ir izpildīts noteikts nosacījums. Tikai atšķirībā no nosacījuma operatora, kamēr veic pārbaudi katrā iterācijā, nevis tikai vienu reizi. Un tikai tad, ja nosacījums ir nepatiess, cilpa beidzas un tiek izpildīta tai sekojošā komanda. Vienkāršiem vārdiem sakot, ja situācija, kurā viņš strādā, vairs nav spēkā.

Ja uzzīmējam ciklu kamēr vienkāršoti, tas tiek darīts, izmantojot šādu shēmu.kamēr cilpa Python. Kā tas darbojas, lietošanas piemēri

Programmas galvenā filiāle (kas darbojas ārpus cilpas) šajā attēlā ir attēlota ar ziliem taisnstūriem. Tirkīzs attēlo cikla ķermeni. Savukārt rombs ir nosacījums, kas tiek pārbaudīts katrā iterācijā.

Cikls kamēr var radīt divus izņēmumus:

  1. Ja cilpas sākumā loģiskā izteiksme neatgriežas patiesa, tad tā vienkārši nesākas, ja tā ir pabeigta pirms izpildes. Kopumā šī situācija ir normāla, jo noteiktos apstākļos lietojumprogramma var neparedzēt izteicienu klātbūtni cilpas pamattekstā.
  2. Ja izteiksme vienmēr ir patiesa, tas var izraisīt cilpu. Tas ir, uz cikla nebeidzamo ritināšanu. Tāpēc šādās programmās vienmēr ir jābūt cilpas vai programmas izejas paziņojumam. Tomēr šāda situācija radīsies, ja programma varēja noteikt konkrēta nosacījuma patiesumu vai nepatiesību. Ja viņai tas neizdodas, programmas darbības pārtraukšanas gadījumā tiek atgriezta kļūda. Vai arī varat rīkoties ar kļūdu, un, ja tā notiks, tiks izpildīts noteikts kods.

Var būt ļoti daudz iespēju, kā rīkoties ar kļūdu. Piemēram, programma var lūgt lietotājam pareizi ievadīt datus. Tātad, ja cilvēks ir norādījis negatīvu skaitli, kur tas var būt tikai pozitīvs, vai ievadījis burtus, kur jābūt tikai cipariem, programma var par to pastāstīt.

Kamēr cilpas piemēri

Šeit ir koda piemērs, kas šajā gadījumā apstrādā kļūdu.

n = ievade ("Ievadiet veselu skaitli: ") 

kamēr tips(n) != int:

    mēģināt:

        n = int(n)

    izņemot ValueError:

        drukāt (“Nepareizs ieraksts!”)

        n = ievade ("Ievadiet veselu skaitli: ") 

ja n % 2 == 0:

    drukāt ("Pat")

cits:

    drukāt ("Nepāra")

Ņemiet vērā, ka Python izmanto kolus, lai deklarētu sarežģītas koda konstrukcijas.

Iepriekš minētajā kodā mēs definējām nosacījumu, ka mums jāpārbauda, ​​vai skaitlis ir vesels skaitlis. Ja jā, tad tiek atgriezts false. Ja nē, tad taisnība.

Koda otrajā daļā, kur tiek izmantots operators if, mēs izmantojām % operatoru, lai atrastu atlikumu pēc dalīšanas darbības. Nākamais solis ir pārbaudīt, vai skaitlis ir pāra. Ja nē, tad šajā gadījumā atlikums ir viens. Attiecīgi skaitlis ir nepāra. 

Vienkārši izsakoties, iepriekš minētais kods vispirms pārbauda, ​​vai lietotāja ievadītā virkne ir skaitlis. Ja jā, tad tiek veikta otrā pārbaude, lai noskaidrotu, vai ir atlikušais dalījums ar divi. Bet otrais bloks netiks izpildīts, kamēr lietotāja ievadītā vērtība nav skaitliska.

Tas ir, cilpa tiks regulāri izpildīta, līdz iestājas nosacījums. Šajā situācijā tas darbojas šādi. 

Tas ir, jūs varat rīkoties pretēji: veiciet noteiktu darbību, līdz notikums kļūst nepatiess.

Koda parsēšana

Tagad aplūkosim sīkāk, kā šis kods darbojas. Lai to izdarītu, mēs to analizēsim soli pa solim.

  1. Pirmkārt, lietotājs ievada virkni, kuru pieņem mainīgais n. 
  2. Izmantojot cilpu kamēr tiek pārbaudīts šī mainīgā veids. Pirmajā ierakstā tas nav vienāds int. Tāpēc testa rezultātā tiek konstatēts, ka šis nosacījums ir patiess. Tāpēc tiek ievadīts cilpas korpuss.
  3. Ar operatora palīdzību mēģināt mēs cenšamies pārvērst virkni par skaitli. Ja tas ir izdarīts, kļūda nerodas. Attiecīgi to nav nepieciešams apstrādāt. Tāpēc tulks atgriežas cilpas sākumā, un saskaņā ar pārbaudes rezultātiem izrādās, ka tas ir kļuvis par veselu skaitli. Tātad, pāriesim pie 7. darbības
  4. Ja reklāmguvums bija neveiksmīgs, tiek parādīts ValueError ziņojums. Šajā gadījumā programmas plūsma tiek nosūtīta uz izņēmuma apstrādātāju.
  5. Lietotājs ievada jaunu vērtību, kas tiek piešķirta mainīgajam n.
  6. Tulks atgriežas 2. darbībā un vēlreiz pārbauda. Ja tā ir vesela skaitļa vērtība, pārejiet uz 7. darbību. Ja nē, konvertēšana tiek mēģināta vēlreiz saskaņā ar 3. darbību.
  7. Ar operatora palīdzību if Nosaka, vai pēc skaitļa dalīšanas ar 2 ir atlikums. 
  8. Ja nē, tiek atgriezts teksts “pat”.
  9. Ja nē, tiek atgriezts teksts “nepāra”.

Apsveriet tagad šādu piemēru. Mēģiniet noteikt, cik reizes šis cikls notiks?

kopā = 100 

i = 0

kamēr es < 5:

    n = int(input())

    kopā = kopā — n

    i = i + 1 

drukāt (“atlikušais”, kopā)

Pareizā atbilde ir 5. Sākotnēji mainīgā vērtība i - nulle. Tulks pārbauda, ​​vai mainīgais ir vienāds i 4 vai mazāk. Ja jā, vērtība tiek atgriezta. patiess, un cilpa tiek izpildīta atbilstoši. Vērtība tiek palielināta par vienu.

Pēc pirmās iterācijas mainīgā vērtība kļūst par 1. Tiek veikta pārbaude, un programma saprot, ka šis skaitlis atkal ir mazāks par 5. Attiecīgi cilpas pamatteksts tiek izpildīts otro reizi. Tā kā darbības ir līdzīgas, vērtība tiek palielināta arī par vienu, un mainīgais tagad ir vienāds ar 2.

Arī šī vērtība ir mazāka par pieci. Pēc tam cilpa tiek izpildīta trešo reizi, pievienojot mainīgajam i 1, un tam tiek piešķirta vērtība 3. Tas atkal ir mazāks par pieciem. Tātad runa ir par sesto cilpas iterāciju, kurā mainīgā vērtība i ir vienāds ar 5 (galu galā, sākotnēji tā bija nulle, cik mēs atceramies). Attiecīgi šis nosacījums neiztur pārbaudi, un cilpa tiek automātiski pārtraukta un tiek veikta pāreja uz nākamo soli, kas atrodas ārpus tā (vai programmas pārtraukšana, ja šādas darbības nav paredzētas).

Cikls var notikt arī pretējā virzienā. Šeit ir koda piemērs, kurā ar katru nākamo iterāciju no mainīgā pašreizējās vērtības tiek atņemts viens. 

kopā = 100 

kamēr kopā > 0:

    n = int(input())

    kopā = kopā — n 

drukāt (“Resurss izsmelts”)

Mēģiniet uzminēt, ko šī programma dara! Iedomājieties to mainīgajā kopsumma tiek saglabāta informācija par programmas resursu. Katru reizi tulks pārbauda, ​​vai resurss pastāv. Ja nē, tiek parādīts teksts “Resurss izsmelts” un programma tiek aizvērta. Un ar katru cilpas atkārtojumu resurss samazinās par lietotāja norādīto skaitu.

Un tagad mājasdarbs. Mēģiniet mainīt iepriekš minēto kodu, lai mainīgais fiziski nevarētu kļūt negatīvs. 

4 Komentāri

  1. si kods ahaan usoo gudbi

Atstāj atbildi