/ / Za petlju: primjeri i moguće pogreške

Za petlju: primjeri i moguće pogreške

U računarstvu se for petlja koristiučiniti istu vrstu radnje više puta. Na primjer, možete jedan po jedan izvesti proizvod s popisa, prevrtati brojeve u određenom rasponu i izvršiti odgovarajuću skriptu za svaki od njih.

Petlja for, za razliku od while, najčešće se koristi. Obje opcije postoje u svim programskim jezicima. U većem je broju jezika sintaktički i semantički identičan.

U pythonu, petlja for sastoji se od:

  • za operatora;
  • naziv varijable koja će se dodijeliti;
  • popis koji se obrađuje;
  • tijelo funkcije i dodatni operatori.

Za razliku od jezika sličnih C, upute nisuomeđeno vitičastim zagradama {}. Da biste to učinili, upotrijebite operator ":" nakon bloka uvjeta i tablice u tijelu petlje. Bez uvlačenja kartice, kod neće uspjeti i pojavit će se pogreška.

Kako se dodatni operatori nastavljaju, koriste se break, pass - pokazivači za preskakanje iteracije, kraj petlje, preskakanje iteracije. Navedeni su nakon bloka nekih if-else uvjeta.

Za petlju

Ova se petlja koristi za ponavljanje svih elemenata zbirke. Navedeno u formatu

za varijablu na popisu: iskaz

Dijagram ciklusa

Nalikuje foreach petlji iz C ++

foreach (stavka tipa u kompletu) {};  jer ja u "zdravo svijetu":  ispis (i * 2, end = "")  hheelllloo wwoorrlldd

U Pythonu je petlja for suradnička - upute u tijelu izvršavaju se za svakog člana popisa bez izričitog navođenja slijeda. Upute se izvršavaju najoptimalnijim redoslijedom.

Varijabla i dodijeljena je svakom objektu izkolekcija. Elementi popisa mogu biti numerički i niz, ali moraju biti cjelobrojnog tipa. Pri radu s višedimenzionalnim nizovima, varijabla i bit će shvaćena kao ugniježđeni nizovi.

popis_popisa = [["čekić", "velika bijela", "pas"], [0, 1, 2], [9.9, 8.8, 7.7]]  za popis u popisu_popisa:  ispis (popis)  ["čekić", "velika bijela", "pas"]  [0, 1, 2]  [9,9, 8,8, 7,7]

Da biste prikazali svaki element ugniježđenog niza, morate koristiti ugniježđene petlje.

Nastaviti

Operator vam omogućuje da preskočite dio for petlje iidite na sljedeću iteraciju. To se radi kada se pojavi vanjski čimbenik. Nastavak je naveden nakon dodatnog bloka if, ali samo je stanje unutar petlje prije glavnog izraza.

broj = 0  za broj u rasponu (10):  broj = broj + 1  ako je broj == 5:  continue # evo naredbe continue  ispis (str (broj))  ispis ("Kraj")

Svaki broj na popisu vrijednosti od 0 do 10povećava broj varijable koji je u početku nula. Kad broj dosegne vrijednost 5, petlja će završiti i započet će sljedeća iteracija. Ispast će:

jedan  2  3  četiri  6  7  8  9  deset  Kraj

Pauza

Operator se koristi zajedno s uvjetom if. Ovaj dizajn u potpunosti prekida ciklus kada se pojavi neki faktor.

Operator prekida petlje
broj = 0  za broj u rasponu (10):  broj + = 1  ako je broj == 5:  break # break  ispis ("Number =" + str (number))  print ("izvan petlje")

Ovdje izraz if definira uvjet: ako je vrijednost varijable broj 5, petlja se prekida. Na svakoj se iteraciji izvršava metoda first print () koja prikazuje obavijest

Broj = 5.

Kad se petlja prekine naredbom break, izvršava se sljedeća metoda print ().

Drugi primjer provjerava je li drugi broj djeljiv s prvim bez ostatka.

za n u rasponu (2, 10): za x u rasponu (2, n): ako je n% x == 0: ispis (n, "jednako", x, "*", n // x) pauza drugo: # petlja je pala bez pronalaska faktora ispis (n, "je prost broj")

U ovom se slučaju koristi ugniježđena petlja.Prvo, svi pojmovi iz skupa brojeva u rasponu od 2 do 10 uzimaju se kao n. Za svaki n definira se novi popis s elementima od 2 do n. Dakle, imamo 8 nizova različitih duljina. Svi elementi iz rezultirajućih zbirki navedeni su varijablom x. Uvjet if sada provjerava je li rezultat n / x cjelobrojna vrijednost. Ako je tačno, petlja se prekida i prikazuje neku poruku na zaslonu. Ako je n / x podijeljeno s ostatkom, prikazuje se druga poruka.

Proći

Operater je potreban da bi zanemario dodatne uvjete.

broj = 0 za broj u rasponu (10): broj + = 1 ako je broj == 5: proći ispis (str (broj)) ispis ("Kraj")

Program se ponaša kao da uvjet ako broj == 5 ne postoji. Monitor će se prikazati

jedan  2  3  četiri  pet  6  7  8  9  deset  Kraj

To vidimo tijekom izvršenja prolaznikaništa se ne događa. Koristi se kao ogrlica samo tamo gdje je sintaktički potrebno. Primjerice, pri razvoju nove klase s metodama koje nije potrebno implementirati.

klasa MyClass (objekt):  def meth_a (samo):  proći  def meth_b (samo):  ispis "I" m meth_b "

Funkcija meth_a još nema svoje upute. Ali Python zahtijeva da blokovi koda klase, osim, osim def, nisu prazni. U suprotnom, pojavit će se poruka o pogrešci.

IndentationError: očekuje se uvučeni blok.

Umjesto toga možete navesti pass.

klasa CompileError (iznimka):  proći

Druga je svrha korištenja izjave pass izričito reći da se ništa ne radi.

To se može vidjeti u drugom primjeru for i pass petlje:

za t u rasponu (25):  učiniti (t)  ako je t == 20:  proći

Ovaj isječak koda prevlači se preko stavki popisaod 0 do 25. Oni se tretiraju kao varijabla t. Na svakoj se iteraciji izvršava neka funkcija do (). Ako želite da se uopće ne dogodi ništa na nekoj vrijednosti, navodi se pass. Na primjer, funkcija do ispisuje poruku 24 puta i preskače upute pri t = 20.

Nizovi

Za programe petlje pomažu vam stvoriti niz vrijednosti i dodijeliti ih varijablama.

Nizovi i petlja

Sljedeći zapis je moguć:

za i u [0, 1, 2, 3, 4, 5]:  ispis i ** 2

Da popis sadrži više elemenata, bilo bi racionalnije stvoriti zaseban niz.

niz = [1, 2, 3, 4, 5, 6, 7, 8, 9]  za u nizu:  ispisati i

Za stvaranje popisa poput

niz = [1, 2, 3, 4, 5, 6, 7, 8, 9] 

, Python ima funkciju range ().Metoda range () uzima tri argumenta u području parametara: početna vrijednost, završna vrijednost, korak. Potreban je samo posljednji element popisa. Dakle, raspon (5) značit će da niz uključuje brojeve od 0 do 5. Ako je naveden korak, tada se mora odrediti i početni element.

raspon (0, 10, 2)

Dobivamo:

0, 2, 4, 6, 8, 10

Popisi žica

Rad s takvim popisima sličan je numeričkim. Na primjer, postoji popis

boje = ["crvena", "zelena", "plava", "žuta"]

Programeri naviknuti na C mogu napisati sljedeću funkciju.

za i u opsegu (len (boje)): ispis boja [i]

Kôd će se izvoditi bez greške, ali ispravnije korištenje petlje for izgleda ovako:

boje = ["crvena", "zelena", "plava", "žuta"] za boju u bojama: ispis u boji
Stvaranje niza

Ako trebate listati popis od zadnjeg do nule, koristi se funkcija reversed ().

boje = ["crvena", "zelena", "plava", "žuta"] za obrnutu boju (boje): ispis u boji

Sljedeći je unos pogrešan. Opet, slična stvar potekla je iz jezika C.

Popisi i indeksi

Python pruža ugrađene funkcije enumerate () za manipulaciju indeksima niza. Prikladni su za upotrebu u pythonu za petlje.

Nizovi i indeks

Slijed vrijednosti uzima se kao argumente. Funkcija enumerate () olakšava upotrebu sljedećeg koda:

za i u opsegu (len (L)): stavka = L [i] # ... izračunaj neki rezultat na temelju stavke ...

Ovdje se koristi metoda len (). Vraća broj elemenata, u ovom slučaju niz L. Mnogo je elemenata prihvaćeno kao argument funkcije range (). Dakle, definiramo popis [0, ... n].

Uz pomoć L [i] dobivamo pristup svakom elementu niza L.

L [0], L [1], L [2] itd.

Funkcija enumerate () eliminira potrebu za inicijalizacijom varijable brojača b i olakšava pisanje u

za brojač, vrijednost u nabrajanju (L): ispis („indeks:„ brojač, „vrijednost:„ vrijednost) “

Enumerate () vraća par protuusluga, tako da su dvije varijable navedene s izrazom for loop.

Funkcije items () i iteritems (), koje se koriste kao metode, slične su.

d.točke ()  d.iteritems ()

Dva popisa

Kada je potrebno koristiti članove više popisa, koristi se funkcija zip ().

Kombiniranje nizova

Potreban je popis A i popis B, od njih pravi jedan zip objekt koji sadrži ugniježđene korice. Svaki element novog objekta povezuje članove popisa A i B i razvrstava ih po indeksu.

zip_objekt [1] = [A [1], B [1]];

Ako ulaz zip () navodi 4 niza,elementi zip polja sadržavat će po 4 elementa. Pakiranje nizova različitih duljina ne dovodi do pogreške. U novi će se objekt smjestiti samo oni elementi koji sadrže vrijednosni par.

Zip_longest () koristi se za uključivanje svakog elementa u tuple, čak i onog bez para.

popis (itertools.zip_longest ((1,2,3), [4])) # [(1, 4), (2, Nijedno), (3, Nijedno)]

Poredaj po ključu

Kada je potrebno ne samo prolaziti kroz elemente niza, već i mijenjati ga, koristi se funkcija keys ().

Ključ - vrijednost

Metoda duplicira i vraća popis dostupnih ključeva rječnika.

za k u ključevima d. (): ako je k.startswith ("R"): del d [k]

Postoji niz d. Njeni se elementi kopiraju metodom keys (). Svaki je element varijabla k. Obrađuje se pomoću startwith, ako postoji podudaranje, stavka se uklanja iz glavnog polja.

startwith () vraća zastavicu koja provjerava počinje li niz s navedenim prefiksom. Funkcija ima tri argumenta: prefiks, početak, kraj.

str.startswith (prefiks [, početak [, kraj]]) -> bool

Potreban je samo prvi - prefiks. To može biti žica ili torta.

my_str.startswith ('vrijednost')

ili

my_str.startswith ((‘‘ vrijednost1 ’,‘ vrijednost2 ’))

Ako je u polju parametra potrebno više redaka, elementi se umotavaju u dodatne zagrade ().

Argument start ukazuje na indeks elementa skoje započinje odbrojavanje. Podržane su pozitivne i negativne vrijednosti. Ako je start = -x, tada pretraživanje započinje s kraja elementa s indeksom x. Parametar end označava posljednji znak na kojem se zaustavlja raščlanjivanje niza. Također podržava negativne vrijednosti. Ako je end = -x, posljednji član popisa s indeksom x od početka.

Funkcija ENDWITH () radi analogno analogiji STARTWITH () Provjerava završava li niz navedenim postfixom. Ima tri parametra sufiks, početak, kraj, a također vraća logičku vrijednost.

Kombiniranje popisa

Ako trebate povezati elemente dva polja,najbrži način je korištenje gomile metoda dikta (izip (niz 1, niz 1)). U ovom slučaju, elementi nisu poredani redom jedan za drugim, već u obliku:

'Array element 1': 'Array element 2'
imena = ["raymond", "rachel", "matthew"] boje = ["crvena", "zelena", "plava"] d = dict (zip (imena, boje)) # {"matthew": "blue", "rachel": "green", "raymond": "red"}

Metoda dict () kreira rječnik, unutar kojegvrijednosti se postavljaju na gornji način - kroz ":". Kao glavna vrijednost koristi se element niza 2. Da biste ga pozvali, trebate ga uputiti indeksom - vrijednošću niza 1.

d ['raymond']  #Crvena

Brojanje članova popisa

Da biste saznali koliko se elemenata sastoji od popisa, upotrijebite funkciju get ().

d.get (ključ, zadani = Nijedan)

Ova metoda provjerava prisutnost ključa u rječniku d i vraća indeksni ključ [indeks].

boje = ["crvena", "zelena", "crvena", "plava", "zelena", "crvena"] d = {} za boju u bojama: d [boja] = d.get (boja, 0) + 1

Metoda get () prikladniji je i brži analog sljedećeg koda.

boje = ["crvena", "zelena", "crvena", "plava", "zelena", "crvena"]  d = {}  za boju u bojama:  ako boja nije u d:  d [boja] = 0  d [boja] + = 1

Ovo su osnovni primjeri i moguće pogreške for petlje.