bari loop di Python. Kumaha gawéna, conto pamakéan

Loops mangrupakeun salah sahiji alat utama basa mana wae. Aya dua loop dasar dina Python, salah sahijina bari. Mertimbangkeun eta, sarta ogé pikeun pamahaman hadé tina gambar, hiji deui. Mémang, dibandingkeun sareng anu sami, langkung gampil ngartos bahan naon waé, sanés?

Konsep siklus

A loop diperlukeun nalika aksi nu tangtu perlu dipigawé sababaraha kali. Ieu pisan simplistic, sabab dina kanyataanana rentang aplikasi pikeun siklus leuwih lega. Aya dua jenis utama loop di Python: keur jeung bari. Nu pang populerna nyaeta pikeun.

Salian lampah husus, Anjeun bisa loop potongan béda kode nepi ka titik nu tangtu. Ieu tiasa sababaraha kali, atanapi salami kaayaan khusus leres.

Sateuacan urang ngawitan ngartos jenis loop sarta bari, hususna, urang masih kudu ngarti naon iteration. Ieu mangrupikeun pangulangan tindakan atanapi sekuen tindakan salami siklus ayeuna dina ngajalankeun aplikasi ayeuna.

Siklus Pikeun

loop Pikeun kami sanes counter a, sakumaha dina loba basa séjén. Tugasna nyaéta pikeun ngitung sekuen nilai anu tangtu. Naon ieu hartosna? Hayu urang nyebutkeun urang boga daptar elemen. Kahiji, loop nyokot kahiji, kadua, katilu, jeung saterusna.

Kauntungannana loop ieu dina Python nyaeta anjeun teu kudu nangtukeun indéks tina unsur uninga iraha bade kaluar loop. Sagalana bakal dilakukeun sacara otomatis.

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

>>> pikeun unsur dina spisok:

… nyitak(elemen + 2)

...

12

42

22

32

Dina conto urang, kami nganggo variabel unsur sanggeus paréntah pikeun. Sacara umum, nami tiasa nanaon. Contona, sebutan populér nyaéta i. Tur kalawan unggal Iteration, variabel ieu bakal ditugaskeun obyék husus tina daptar, nu urang disebut kecap luyu.

Dina hal urang, daptar mangrupa runtuyan nomer 10,40,20,30. Dina unggal iteration, nilai pakait muncul dina variabel. Contona, pas loop dimimitian, variabel unsur nilai 10 ditugaskeun. Dina Iteration salajengna, sapuluh robah jadi angka 40, katilu kalina robah jadi angka 20, sarta tungtungna, dina Iteration panungtungan loop, robah jadi 30.

Sinyal pikeun tungtung siklus nyaéta tungtung elemen dina daptar.

Upami anjeun peryogi loop pikeun ngalakukeun enumerasi nilai klasik, sapertos dina basa pamrograman anu sanés, anjeun kedah nyiptakeun daptar kalayan urutan nomer alami dugi ka nilai anu urang butuhkeun.

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

Atawa ngagunakeun fungsi len(), pikeun nangtukeun panjang daptar. Tapi dina hal ieu eta leuwih hade migunakeun loop a bari, sabab teu kudu make variabel.

Upami anjeun kedah ngarobih sekuen nilai dina daptar, loop keur sarta di dieu datang ka nyalametkeun teh. Jang ngalampahkeun ieu, dina unggal iteration, unggal unsur daptar kudu ditugaskeun hiji nilai luyu.

Sedengkeun Loop

Beda jeung siklusna keur, nu saukur iterates leuwih nilai runtuyan, loop waktu ngabogaan leuwih kagunaan. Ngaran jenis ieu siklus ditarjamahkeun salaku "acan". Maksudna, "dugi ka".

Ieu mangrupikeun loop universal anu aya dina sadaya basa pamrograman. Sarta dina sababaraha cara eta nyarupaan operator kondisional yeuh, nu ngalakukeun dipariksa pikeun nempo lamun kaayaan nu tangtu geus patepung. Ngan kontras jeung operator kondisional, waktu ngalakukeun dipariksa di unggal iteration, teu ngan sakali. Sareng upami kaayaan éta palsu, loop ditungtungan sareng paréntah anu nuturkeun éta dieksekusi. Dina kecap basajan, lamun kaayaan di mana manéhna gawé geus euweuh valid.

Lamun urang ngagambar siklus waktu simplistically, ieu dipigawé maké skéma saperti.bari loop di Python. Kumaha gawéna, conto pamakéan

Cabang utama program (anu ngalir di luar loop) digambarkeun dina inohong ieu kalawan rectangles bulao. Pirus ngagambarkeun awak siklus. Sabalikna, belah ketupat mangrupikeun kaayaan anu dipariksa dina unggal iterasi.

siklus waktu tiasa nyababkeun dua pengecualian:

  1. Lamun dina awal loop ekspresi logis teu balik leres, éta ngan saukur teu dimimitian, sanggeus réngsé saméméh palaksanaan. Sacara umum, kaayaan ieu normal, sabab dina kaayaan nu tangtu, aplikasi bisa jadi teu nyadiakeun keur ayana éksprési dina awak loop.
  2. Lamun babasan sok bener, ieu bisa ngakibatkeun loop a. Maksudna, ka ngagulung sajajalan tina siklus. Ku alatan éta, dina program sapertos kitu, kedah aya pernyataan kaluar tina loop atanapi program. Sanajan kitu, kaayaan ieu bakal timbul lamun program éta bisa nangtukeun bebeneran atawa falsity tina kaayaan nu tangtu. Upami anjeunna gagal ngalakukeun ieu, teras aya kasalahan anu dipulangkeun nalika ngeureunkeun program. Atanapi anjeun tiasa ngadamel kasalahan, teras, upami kajantenan, kodeu tangtu bakal dieksekusi.

Aya seueur pilihan pikeun kumaha carana ngadamel kasalahan. Contona, program bisa nanya ka pamaké pikeun nuliskeun data bener. Janten, upami jalma nunjukkeun nomer négatip dimana éta ngan ukur positip, atanapi ngalebetkeun hurup dimana ngan ukur nomer, program tiasa nyarioskeun ngeunaan éta.

Sedengkeun Contoh Loop

Ieu conto kode anu nanganan kasalahan dina hal ieu.

n = input("Asupkeun integer: ") 

sedengkeun tipe(n) != int:

    coba:

        n = int(n)

    kajaba ValueError:

        print("Entri salah!")

        n = input("Asupkeun integer: ") 

lamun n % 2 == 0:

    print ("Jantung")

sanésna:

    print ("Aneh")

Émut yén Python ngagunakeun titik dua pikeun nyatakeun konstruksi kode anu kompleks.

Dina kode di luhur, urang dihartikeun salaku kaayaan nu urang kedah pariksa lamun jumlahna mangrupa integer. Upami enya, maka palsu dipulangkeun. Lamun henteu, mangka leres.

Dina bagian kadua kode, dimana operator dipaké if, kami dipaké operator% pikeun manggihan sésana sanggeus operasi division. Lengkah saterusna nyaéta mariksa lamun jumlahna malah. Upami henteu, maka sésana mangrupikeun hiji dina hal ieu. Sasuai, jumlahna ganjil. 

Dina istilah saderhana, kodeu di luhur mariksa heula upami senar anu diasupkeun ku pangguna mangrupikeun nomer. Upami enya, teras cek kadua dilakukeun pikeun ningali naha aya sésa divisi ku dua. Tapi blok kadua moal dieksekusi dugi nilai diasupkeun ku pamaké numerik.

Hartina, loop bakal rutin dieksekusi dugi kondisi lumangsung. Dina kaayaan ieu, gawéna kawas kieu. 

Hartina, anjeun bisa balik ti sabalikna: loop hiji aksi tangtu dugi acara janten palsu.

Parsing kode

Ayeuna hayu urang tingali dina leuwih jéntré kumaha kode ieu jalan. Jang ngalampahkeun ieu, urang bakal nganalisis step by step.

  1. Kahiji, pamaké ngasupkeun string, nu ditarima ku variabel n. 
  2. Ngagunakeun loop a waktu tipe variabel ieu dipariksa. Dina entri kahiji, éta teu sarua int. Ku alatan éta, salaku hasil tina tés, éta kapanggih yén kaayaan ieu bener. Ku alatan éta, awak loop diasupkeun.
  3. Kalayan bantuan hiji operator nyobaan urang nyobian ngarobah string kana angka. Upami ieu dilakukeun, teras henteu aya kasalahan. Sasuai, teu perlu ngolah eta. Ku alatan éta, juru balik deui ka awal loop, sarta dumasar kana hasil dipariksa, tétéla yén éta geus jadi integer. Janten hayu urang lengkah 7
  4. Upami konvérsi henteu suksés, maka ValueError dialungkeun. Dina hal ieu, aliran program dikirim ka iwal Handler.
  5. Pamaké ngasupkeun nilai anyar, nu ditugaskeun ka variabel n.
  6. Juru basa balik deui ka lengkah 2 sareng pariksa deui. Upami éta nilai integer, angkat ka lengkah 7. Upami henteu, konvérsi dicoba deui dumasar kana léngkah 3.
  7. Kalayan bantuan hiji operator if Nangtukeun lamun aya sésana sanggeus ngabagi hiji angka ku 2. 
  8. Upami henteu, téks "malah" dipulangkeun.
  9. Upami henteu, téks "ganjil" dipulangkeun.

Pertimbangkeun ayeuna conto sapertos kitu. Coba pikeun nangtukeun sabaraha kali siklus ieu bakal ngaliwatan?

total = 100 

abdi = 0

sedengkeun kuring <5:

    n = int(input())

    total = total — n

    abdi = abdi + 1 

print("Sésana", total)

Jawaban anu bener nyaéta 5. Mimitina, nilai variabel i – nol. Juru mariksa naha variabelna sarua i 4 atanapi kirang. Upami enya, maka nilaina dipulangkeun. bener, sarta loop dieksekusi sasuai. Nilaina ngaronjat ku hiji.

Saatos Iteration kahiji, nilai variabel jadi 1. A dipariksa dipigawé, sarta program understands yén angka ieu deui kirang ti 5. Sasuai, awak loop dieksekusi pikeun kadua kalina. Kusabab léngkah-léngkahna sami, nilaina ogé ningkat ku hiji, sareng variabel ayeuna sami sareng 2.

Nilai ieu ogé kirang ti lima. Lajeng loop dieksekusi katilu kalina, ditambahkeun kana variabel i 1 sarta eta ditugaskeun nilai 3. Ieu deui kirang ti lima. Sarta jadi datang ka Iteration kagenep tina loop, di mana nilai variabel i sarua 5 (sanggeus kabeh, éta asalna enol, sajauh kami apal). Sasuai, kaayaan ieu teu lulus ujian, sarta loop otomatis terminated sarta transisi ka lengkah saterusna, nu di luar eta (atawa terminasi program, lamun léngkah di handap ieu teu disadiakeun), dilaksanakeun.

Siklus ogé bisa lumangsung dina arah nu lalawanan. Ieu conto kode dimana, kalawan unggal Iteration saterusna, hiji dikurangan tina nilai ayeuna variabel. 

total = 100 

sedengkeun total > 0:

    n = int(input())

    total = total — n 

print ("Sumber daya béak")

Coba tebak naon anu dilakukeun ku program ieu! Bayangkeun éta dina variabel total informasi ngeunaan sumberdaya program disimpen. Unggal waktos juru parios upami sumberna aya. Upami henteu, teras téks "Resource exhausted" ditampilkeun sareng program ditutup. Sareng unggal pengulangan puteran, sumberna ngirangan ku jumlah anu ditangtukeun ku pangguna.

Jeung ayeuna PR. Coba ngarobah kodeu luhur ku kituna variabel teu bisa fisik jadi négatip. 

4 Komentar

  1. aya kode anu anjeun hoyongkeun

  2. ngabarakatak

Leave a Reply