Nors ciklas Python. Kaip tai veikia, naudojimo pavyzdžiai

Kilpos yra viena iš pagrindinių bet kurios kalbos įrankių. Python yra dvi pagrindinės kilpos, iš kurių viena yra while. Apsvarstykite tai, o kad geriau suprastumėte paveikslėlį, dar vieną. Iš tiesų, palyginti su kažkuo panašiu, bet kokią medžiagą suprasti daug lengviau, ar ne?

Ciklo samprata

Ciklas reikalingas, kai tam tikrą veiksmą reikia atlikti kelis kartus. Tai labai paprasta, nes iš tikrųjų ciklų pritaikymo spektras yra daug platesnis. Python yra du pagrindiniai kilpų tipai: for ir while. Populiariausias skirtas.

Be konkrečių veiksmų, iki tam tikro taško galite susieti skirtingas kodo dalis. Tai gali būti tam tikrą skaičių kartų arba tol, kol tam tikra sąlyga yra teisinga.

Prieš pradėdami suprasti kilpų tipus ir ypač, dar turime suprasti, kas yra iteracija. Tai vienas veiksmo arba veiksmų sekos pakartojimas dabartinio ciklo metu dabartinės programos vykdymo metu.

Ciklas Už

Mūsų For kilpa nėra skaitiklis, kaip ir daugeliu kitų kalbų. Jos užduotis – išvardinti tam tikrą reikšmių seką. Ką tai reiškia? Tarkime, kad turime elementų sąrašą. Pirma, kilpa užima pirmą, antrą, trečią ir pan.

Šios Python kilpos pranašumas yra tas, kad jums nereikia nustatyti elemento indekso, kad žinotumėte, kada išeiti iš ciklo. Viskas bus daroma automatiškai.

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

>>> elementui spisok:

… spausdinti (elementas + 2)

...

12

42

22

32

Mūsų pavyzdyje mes naudojome kintamąjį elementas po už komandos. Apskritai pavadinimas gali būti bet koks. Pavyzdžiui, populiarus pavadinimas yra i. Ir su kiekviena iteracija šiam kintamajam bus priskirtas konkretus objektas iš sąrašo, kurį pavadinome atitinkamu žodžiu.

Mūsų atveju sąrašas yra skaičių 10,40,20,30 seka. Kiekvienoje iteracijoje kintamajame atsiranda atitinkama reikšmė. Pavyzdžiui, kai tik ciklas prasideda, kintamasis elementas priskiriama 10 reikšmė. Kitoje iteracijoje dešimtukas virsta skaičiumi 40, trečią kartą jis virsta skaičiumi 20 ir galiausiai, paskutinėje ciklo iteracijoje, jis virsta 30.

Ciklo pabaigos signalas yra sąrašo elementų pabaiga.

Jei jums reikia ciklo klasikiniam reikšmių išvardijimui atlikti, kaip ir kitose programavimo kalbose, turėtumėte sukurti sąrašą su natūraliųjų skaičių seka iki mums reikalingos reikšmės.

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

Arba naudokite funkciją len (), nustatyti sąrašo ilgį. Bet šiuo atveju geriau naudoti kilpą tuo metu, nes nereikia naudoti kintamojo.

Jei reikia pakeisti reikšmių seką sąraše, pakartokite forumas ir čia ateina į pagalbą. Norėdami tai padaryti, kiekvienos iteracijos metu kiekvienam sąrašo elementui turi būti priskirta atitinkama reikšmė.

Nors kilpa

Skirtingai nuo ciklo forumas, kuris tiesiog kartoja sekos reikšmes, kilpą o turi daugiau naudojimo būdų. Šio tipo ciklų pavadinimas išverstas kaip „dar“. Tai yra „iki“.

Tai universali kilpa, randama visose programavimo kalbose. Ir tam tikra prasme jis primena sąlyginį operatorių kukmedis, kuri atlieka patikrinimą, ar tenkinama tam tikra sąlyga. Tik priešingai nei sąlyginis operatorius, o patikrinimą atlieka kiekvienos iteracijos metu, o ne vieną kartą. Ir tik jei sąlyga klaidinga, ciklas baigiasi ir įvykdoma po jos sekanti komanda. Paprastais žodžiais tariant, jei situacija, kurioje jis dirba, nebegalioja.

Jei nubrėžtume ciklą o paprastai tai daroma naudojant tokią schemą.Nors ciklas Python. Kaip tai veikia, naudojimo pavyzdžiai

Pagrindinė programos šaka (kuri veikia už kilpos ribų) pavaizduota šiame paveikslėlyje su mėlynais stačiakampiais. Turkis simbolizuoja ciklo kūną. Savo ruožtu rombas yra sąlyga, kuri tikrinama kiekvienos iteracijos metu.

ciklas o gali būti dvi išimtys:

  1. Jei ciklo pradžioje loginė išraiška negrąžina tiesa, tada ji tiesiog neprasideda, nes ji buvo baigta prieš vykdymą. Apskritai ši situacija yra normali, nes tam tikromis aplinkybėmis programa gali nenumatyti, kad ciklo korpuse būtų išraiškų.
  2. Jei išraiška visada teisinga, tai gali sukelti kilpą. Tai yra, iki begalinio ciklo slinkimo. Todėl tokiose programose visada turėtų būti išėjimo iš ciklo ar programos sakinys. Tačiau tokia situacija susiklostys, jei programa galėjo nustatyti konkrečios sąlygos teisingumą ar klaidingumą. Jei jai nepavyko to padaryti, nutraukus programą grąžinama klaida. Arba galite sutvarkyti klaidą ir tada, jei ji įvyks, bus vykdomas tam tikras kodas.

Gali būti daugybė galimybių, kaip elgtis su klaida. Pavyzdžiui, programa gali paprašyti vartotojo teisingai įvesti duomenis. Taigi, jei žmogus nurodė neigiamą skaičių ten, kur jis gali būti tik teigiamas, arba įvedė raides ten, kur turi būti tik skaičiai, programa gali apie tai pasakyti.

Nors ciklo pavyzdžiai

Štai kodo, kuris šiuo atveju tvarko klaidą, pavyzdys.

n = įvestis („Įveskite sveikąjį skaičių:“) 

o tipas(n) != int:

    pabandykite:

        n = int(n)

    išskyrus „ValueError“:

        spausdinti („Klaidingas įrašas!“)

        n = įvestis („Įveskite sveikąjį skaičių:“) 

jei n % 2 == 0:

    spausdinti („netgi“)

Kitas:

    spausdinti („Nelyginis“)

Atminkite, kad Python naudoja dvitaškius sudėtingoms kodo konstrukcijoms deklaruoti.

Aukščiau pateiktame kode apibrėžėme sąlygą, kurią turėtume patikrinti, ar skaičius yra sveikasis skaičius. Jei taip, grąžinama false. Jei ne, tada tiesa.

Antroje kodo dalyje, kur naudojamas operatorius if, naudojome % operatorių, kad rastume likutį po padalijimo operacijos. Kitas žingsnis – patikrinti, ar skaičius lygus. Jei ne, šiuo atveju likusi dalis yra viena. Atitinkamai, skaičius yra nelyginis. 

Paprastais žodžiais tariant, aukščiau pateiktas kodas pirmiausia patikrina, ar vartotojo įvesta eilutė yra skaičius. Jei taip, tada atliekamas antras patikrinimas, ar yra dalybos iš dviejų likutis. Tačiau antrasis blokas nebus vykdomas tol, kol vartotojo įvesta reikšmė nebus skaitinė.

Tai reiškia, kad kilpa bus reguliariai vykdoma, kol įvyks sąlyga. Šioje situacijoje tai veikia taip. 

Tai yra, galite pereiti iš priešingos pusės: atlikti tam tikrą veiksmą tol, kol įvykis taps klaidingas.

Kodo analizavimas

Dabar pažiūrėkime išsamiau, kaip veikia šis kodas. Norėdami tai padaryti, mes analizuosime jį žingsnis po žingsnio.

  1. Pirmiausia vartotojas įveda eilutę, kurią priima kintamasis n. 
  2. Naudojant kilpą o patikrinamas šio kintamojo tipas. Pirmuoju įrašu jis nėra lygus int. Todėl atlikus testą nustatyta, kad ši sąlyga yra teisinga. Todėl įvedamas kilpos korpusas.
  3. Su operatoriaus pagalba pabandyti bandome paversti eilutę į skaičių. Jei tai bus padaryta, klaida neįvyks. Atitinkamai, nereikia jo apdoroti. Todėl vertėjas grįžta į ciklo pradžią ir pagal patikrinimo rezultatus paaiškėja, kad jis tapo sveikuoju skaičiumi. Taigi pereikime prie 7 veiksmo
  4. Jei konversija buvo nesėkminga, rodoma ValueError. Tokiu atveju programos srautas siunčiamas į tvarkyklę, išskyrus.
  5. Vartotojas įveda naują reikšmę, kuri priskiriama kintamajam n.
  6. Vertėjas grįžta į 2 veiksmą ir vėl patikrina. Jei tai sveikasis skaičius, pereikite prie 7 veiksmo. Jei ne, konvertuoti bandoma dar kartą pagal 3 veiksmą.
  7. Su operatoriaus pagalba if Nustato, ar yra likutis padalijus skaičių iš 2. 
  8. Jei ne, grąžinamas tekstas „net“.
  9. Jei ne, grąžinamas tekstas „nelyginis“.

Dabar apsvarstykite tokį pavyzdį. Pabandykite nustatyti, kiek kartų šis ciklas praeis?

iš viso = 100 

i = 0

kol aš < 5:

    n = int(įvestis())

    iš viso = iš viso – n

    i = i + 1 

spausdinti („Liko“, iš viso)

Teisingas atsakymas yra 5. Iš pradžių kintamojo reikšmė i – nulis. Vertėjas patikrina, ar kintamasis yra lygus i 4 ar mažiau. Jei taip, tada vertė grąžinama. tiesa, o ciklas vykdomas atitinkamai. Vertė padidinama vienu.

Po pirmos iteracijos kintamojo reikšmė tampa 1. Atliekamas patikrinimas, ir programa supranta, kad šis skaičius vėl yra mažesnis nei 5. Atitinkamai, kilpos kūnas vykdomas antrą kartą. Kadangi žingsniai yra panašūs, vertė taip pat padidinama vienu, o kintamasis dabar yra lygus 2.

Ši vertė taip pat yra mažesnė nei penki. Tada ciklas vykdomas trečią kartą, pridedamas prie kintamojo i 1 ir jam priskiriama reikšmė 3. Tai vėlgi yra mažiau nei penki. Taigi ateina šeštoji ciklo iteracija, kurioje kintamojo reikšmė i lygu 5 (juk iš pradžių buvo nulis, kiek atsimename). Atitinkamai, ši sąlyga neišlaiko testo, o ciklas automatiškai nutraukiamas ir atliekamas perėjimas prie kito žingsnio, kuris yra už jos ribų (arba programos užbaigimas, jei šie veiksmai nenumatyti).

Ciklas gali vykti ir priešinga kryptimi. Čia yra kodo pavyzdys, kai su kiekviena sekančia iteracija iš esamos kintamojo vertės atimamas vienas. 

iš viso = 100 

o iš viso > 0:

    n = int(įvestis())

    iš viso = iš viso – n 

spausdinti („Ištekliai išnaudoti“)

Pabandykite atspėti, ką ši programa veikia! Įsivaizduokite tai kintamuoju suma saugoma informacija apie programos išteklius. Kiekvieną kartą vertėjas patikrina, ar išteklius yra. Jei ne, rodomas tekstas „Ištekliai išnaudoti“ ir programa užsidaro. Ir su kiekviena ciklo iteracija išteklius sumažėja vartotojo nurodytu skaičiumi.

O dabar namų darbai. Pabandykite pakeisti aukščiau pateiktą kodą, kad kintamasis fiziškai negalėtų tapti neigiamu. 

4 komentarai

Palikti atsakymą