nalika daur ulang ing Python. Cara kerjane, conto panggunaan

Loop minangka salah sawijining piranti utama ing sembarang basa. Ana rong puteran dhasar ing Python, salah sijine yaiku nalika. Coba, lan uga kanggo pangerten luwih saka gambar, siji liyane. Pancen, yen dibandhingake karo sing padha, luwih gampang kanggo mangerteni materi apa wae, ta?

Konsep siklus

A loop dibutuhake nalika tumindak tartamtu kudu dileksanakake kaping pirang-pirang. Iki banget simplistic, amarga ing kasunyatan sawetara aplikasi kanggo siklus luwih akeh. Ana rong jinis utama puteran ing Python: kanggo lan nalika. Sing paling populer yaiku kanggo.

Saliyane tumindak tartamtu, sampeyan bisa ngubungake potongan kode sing beda-beda nganti titik tartamtu. Iki bisa dadi sawetara kaping, utawa anggere kondisi tartamtu bener.

Sadurunge kita wiwiti ngerti jinis puteran lan nalika, utamané, kita isih kudu ngerti apa iterasi. Iki minangka salah sawijining pengulangan tumindak utawa urutan tumindak sajrone siklus saiki ing aplikasi saiki.

Siklus Kanggo

Kita For loop dudu counter, kaya ing pirang-pirang basa liyane. Tugase yaiku ngitung urutan nilai tartamtu. Apa tegese iki? Ayo kita duwe dhaptar unsur. Pisanan, daur ulang njupuk pisanan, kaloro, katelu, lan sateruse.

Kauntungan saka daur ulang iki ing Python yaiku sampeyan ora perlu nemtokake indeks unsur kanggo ngerti kapan metu saka daur ulang. Kabeh bakal rampung kanthi otomatis.

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

>>> kanggo unsur ing spisok:

… print(elemen + 2)

...

12

42

22

32

Ing conto kita, kita nggunakake variabel unsur sawise prentah. Umumé, jeneng bisa apa wae. Contone, sebutan populer yaiku i. Lan saben pengulangan, variabel iki bakal diwenehi obyek tartamtu saka dhaptar, sing diarani tembung sing cocog.

Ing kasus kita, dhaptar kasebut minangka urutan nomer 10,40,20,30. Ing saben pengulangan, nilai sing cocog katon ing variabel. Contone, sanalika loop diwiwiti, variabel unsur nilai 10 diutus. Ing pengulangan sabanjure, sepuluh dadi nomer 40, kaping telune dadi nomer 20, lan pungkasane, ing pengulangan pungkasan, dadi 30.

Sinyal kanggo pungkasan siklus yaiku pungkasan saka unsur ing dhaptar.

Yen sampeyan butuh daur ulang kanggo nindakake enumerasi nilai klasik, kaya ing basa pamrograman liyane, sampeyan kudu nggawe dhaptar kanthi urutan nomer alami nganti nilai sing dibutuhake.

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

Utawa nggunakake fungsi len(), kanggo nemtokake dawa dhaftar. Nanging ing kasus iki luwih apik nggunakake loop nalika, amarga ora perlu nggunakake variabel.

Yen sampeyan kudu ngganti urutan nilai ing dhaptar, daur ulang kanggo lan iki teka kanggo ngluwari. Kanggo nindakake iki, ing saben pengulangan, saben unsur dhaptar kudu diwenehi nilai sing cocog.

Nalika Loop

Beda karo siklus kanggo, kang mung iterates liwat nilai saka urutan, daur ulang nalika wis luwih akeh nggunakake. Jeneng jinis siklus iki dijarwakake minangka "durung". Yaiku, "nganti".

Iki minangka loop universal sing ditemokake ing kabeh basa pamrograman. Lan ing sawetara cara meh padha karo operator kondisional yowes, kang nindakake mriksa kanggo ndeleng yen kondisi tartamtu wis ketemu. Mung beda karo operator kondisional, nalika nindakake mriksa ing saben pengulangan, ora mung sapisan. Lan mung yen kondisi iku salah, daur ulang ends lan printah ing ngisor iki dieksekusi. Kanthi tembung prasaja, yen kahanan ing ngendi dheweke kerja wis ora bener.

Yen kita nggambar siklus nalika simplistically, iki wis rampung nggunakake rencana kuwi.nalika daur ulang ing Python. Cara kerjane, conto panggunaan

Cabang utama program (sing mlaku ing njaba loop) digambarake ing tokoh iki kanthi persegi panjang biru. Turquoise nggambarake awak siklus. Sabanjure, rombus minangka kondisi sing dicenthang ing saben pengulangan.

Sepeda; Pit; ontel nalika bisa nyebabake rong pangecualian:

  1. Yen ing awal daur ulang expression logis ora bali bener, iku mung ora diwiwiti, wis rampung sadurunge eksekusi. Umumé, kahanan iki normal, amarga ing kahanan tartamtu, aplikasi kasebut bisa uga ora nyedhiyakake ekspresi ing awak daur ulang.
  2. Yen ekspresi kasebut tansah bener, iki bisa nyebabake loop. Sing, kanggo nggulung telas siklus. Mulane, ing program kasebut, mesthine kudu ana statement metu saka loop utawa program. Nanging, kahanan iki bakal muncul yen program bisa nemtokake bebener utawa salah sawijining kondisi tartamtu. Yen dheweke gagal nindakake iki, banjur ana kesalahan bali karo mandap program. Utawa sampeyan bisa ngatasi kesalahan kasebut, banjur, yen kedadeyan, kode tartamtu bakal dieksekusi.

Bisa uga ana akeh pilihan kanggo ngatasi kesalahan. Contone, program bisa njaluk pangguna ngetik data kanthi bener. Dadi, yen ana wong sing nuduhake nomer negatif sing mung bisa positif, utawa ngetik huruf sing mung nomer, program kasebut bisa nyritakake.

Tuladha While Loop

Punika conto kode sing nangani kesalahan ing kasus iki.

n = input("Ketik integer:") 

while ketik(n) != int:

    Coba:

        n = int(n)

    kajaba ValueError:

        print("Entri salah!")

        n = input("Ketik integer:") 

yen n % 2 == 0:

    print ("Gelar")

liyane:

    print("Aneh")

Elinga yen Python nggunakake titik titik kanggo ngumumake konstruksi kode kompleks.

Ing kode ing ndhuwur, kita ditetepake minangka kondisi sing kudu dipriksa yen nomer kasebut minangka integer. Yen ya, banjur palsu bali. Yen ora, banjur bener.

Ing bagean liya saka kode, ngendi operator digunakake if, kita nggunakake operator% kanggo nemokake sisa sawise operasi divisi. Langkah sabanjure kanggo mriksa yen nomer malah. Yen ora, banjur liyane iku siji ing kasus iki. Mangkono, nomer kasebut ganjil. 

Ing istilah sing prasaja, kode ing ndhuwur mriksa dhisik yen senar sing dilebokake pangguna minangka nomer. Yen ya, banjur mriksa kaping pindho kanggo ndeleng yen ana sisa saka divisi dening loro. Nanging blok kapindho ora bakal dieksekusi nganti nilai sing dilebokake pangguna yaiku numerik.

Tegese, loop bakal ditindakake kanthi rutin nganti kondisi kasebut kedadeyan. Ing kahanan iki, kerjane kaya iki. 

Sing, sampeyan bisa pindhah saka ngelawan: daur ulang tumindak tartamtu nganti acara dadi palsu.

Parsing kode

Saiki ayo ndeleng kanthi luwih rinci babagan cara kerja kode iki. Kanggo nindakake iki, kita bakal nganalisa langkah demi langkah.

  1. Pisanan, pangguna ngetik senar, sing ditampa dening variabel n. 
  2. Nggunakake loop nalika jinis variabel iki dicenthang. Ing entri pisanan, iku ora padha int. Mulane, minangka asil saka tes, ditemokake yen kahanan iki bener. Mulane, awak loop dilebokake.
  3. Kanthi bantuan saka operator nyoba kita nyoba ngonversi string menyang nomer. Yen wis rampung, mula ora ana kesalahan. Mulane, ora perlu diproses. Mulane, interpreter bali menyang wiwitan daur ulang, lan miturut asil mriksa, iku wis dadi integer. Dadi ayo pindhah menyang langkah 7
  4. Yen konversi ora kasil, banjur ValueError dibuwang. Ing kasus iki, aliran program dikirim menyang pawang kajaba.
  5. Pangguna ngetik nilai anyar, kang diutus kanggo variabel n.
  6. Juru basa bali menyang langkah 2 lan mriksa maneh. Yen nilai integer, pindhah menyang langkah 7. Yen ora, konversi dicoba maneh miturut langkah 3.
  7. Kanthi bantuan saka operator if Nemtokake yen ana sisa sawise dibagi nomer 2. 
  8. Yen ora, teks "malah" bali.
  9. Yen ora, teks "aneh" bali.

Coba saiki contone. Coba nemtokake kaping pirang-pirang siklus iki bakal ditindakake?

total = 100 

aku = 0

nalika aku <5:

    n = int(input())

    total = total - n

    i = i + 1 

print("Sisa", total)

Jawaban sing bener yaiku 5. Wiwitane, nilai variabel i – nul. Interpreter mriksa yen variabel padha i 4 utawa kurang. Yen ya, banjur regane bali. bener, lan loop dileksanakake miturut. Nilai tambah siji.

Sawise pengulangan pisanan, nilai variabel dadi 1. A mriksa dileksanakake, lan program mangertos sing nomer iki maneh kurang saka 5. Patut, awak daur ulang kaleksanan kanggo kaping pindho. Wiwit langkah-langkah kasebut padha, nilai kasebut uga tambah siji, lan variabel saiki padha karo 2.

Nilai iki uga kurang saka limang. Banjur daur ulang dieksekusi kaping telune, ditambahake menyang variabel i 1 lan diutus nilai 3. Iki maneh kurang saka limang. Lan teka menyang pengulangan enem daur ulang, ing kang Nilai saka variabel i padha karo 5 (sawise kabeh, iku Originally nul, minangka adoh kita elinga). Patut, kondisi iki ora pass test, lan daur ulang otomatis mungkasi lan transisi menyang langkah sabanjure, kang njaba (utawa mandap program, yen langkah ing ngisor iki ora kasedhiya), wis digawa metu.

Siklus uga bisa dumadi ing arah ngelawan. Iki minangka conto kode ing ngendi, kanthi saben pengulangan sakteruse, siji dikurangi saka nilai variabel saiki. 

total = 100 

nalika total > 0:

    n = int(input())

    total = total - n 

print("Sumber daya habis")

Coba tebak apa program iki! Mbayangno yen ing variabel Total informasi babagan sumber program disimpen. Saben juru basa mriksa manawa ana sumber daya. Yen ora, banjur teks "Resource exhausted" ditampilake lan program ditutup. Lan saben pengulangan daur ulang, sumber daya mudhun kanthi jumlah sing ditemtokake pangguna.

Lan saiki PR. Coba ganti kode ing ndhuwur supaya variabel kasebut ora bisa dadi negatif. 

4 Komentar

  1. kode apa sampeyan apik

Ninggalake a Reply