Fir Loop am Python

De For Loop am Python huet e puer verschidde Funktiounen wéi aner Programméierungssproochen. Ech verloossen Iech wat ech léieren fir dat Bescht aus enger vun de meescht benotzte Schleifen ze kréien.

Am Python ass et geduecht fir duerch en iterabelen Objet ze iteréieren, sief et eng Lëscht, en Objet oder en anert Element.

Déi folgend Struktur ass

h2=[ 'Valencia', 'Castellón', 'Alicante']

for j in h2:
   instructions

Hei ass h2 en iterabelt Element, zum Beispill eng Lëscht h2=[ 'Valencia', 'Castellón', 'Alicante']. D'Loop wäert 3 Iteratiounen hunn, an der éischter j=Valencia an der zweeter d'Variabel j=Castellón.

A mat dësem kënne mir d'Instruktioune definéieren déi mir wëllen, ëmmer drun erënneren un d'Indentatioun, eppes essentielle am Python an dat vill Leit ignoréieren, Feeler am Code kréien.

Iteréiert fir Loop eng exakt Zuel vu Mol.

Wa mir wëllen datt et eng gewëssen Unzuel vun Mol widderhëlt wéi mir an C ++ maache kënnen, musse mir Range benotzen (). Fir 10 Mol ze iteréieren, benotze mir eng

for element in Range(9):
    instructions

Mir setzen 9 an net 10 well Range fänkt vun 0 un, also vun 0 bis 9 ginn et 10 Iteratiounen oder Wendungen vun der Loop.

Wësse Range () erlaabt eis, amplaz eng Zuel bannen ze setzen, eng Variabel ze setzen, mat där mir vill méi Kontroll hunn.

var = 10
for element in Range(var):
    instructions

D'Range Funktioun huet vill Optiounen, ech wäert doriwwer an engem anere Post schwätzen, fir den Inhalt net ze vermëschen an esou vill wéi méiglech z'entwéckelen.

Vill méi ka gemaach ginn fir de Flux vun der for Loop ze kontrolléieren.

Break a Continue Aussoen

Et ginn 2 ganz nëtzlech Fonctiounen, déi eis erlaben e fir Loop ganz funktionell ze maachen, fon der Paus an de weider. Si ginn normalerweis mat Bedingungen benotzt, wann, iwwerpréift ob eppes wouer ass.

Si schaffen an anere Schleifen, an et gëtt eng aner interessant Ausso déi Pass ass, dat ass eng Ausso déi ausgefouert gëtt awer näischt mécht an ideal ass fir wa mir eng Struktur wëllen definéieren déi Kommandoen erfuerdert awer mir wëllen se spéider setzen (Kommentaren sinn net nëtzlech fir dëst)

Break

Mat Paus kënne mir zu all Moment aus der Loop erausgoen. Wéi Dir Iech virstellen ganz nëtzlech. Et ass richteg datt et aner Strukture ginn wéi Während,

numeros = [1, 2, 4, 3, 5, 8, 6]
for n in numeros:
    if n == 3:
        break
else:
    print('No se encontró el número 3')

weider

Et mécht eis op dat nächst Element an der Loop goen.

numeros = [1, 2, 4, 3, 5, 8, 6]
for n in numeros:
    if n == 3:
        continue
else:
    print('No se encontró el número 3')

https://j2logo.com/bucle-for-en-python/

Fir ... anescht

Et gëtt eng Struktur ofgeleet vu For, wat fir ... anescht ass

datos = [1, 2, 3, 4, 5]
for n in datos:
    if n == 2:
        break
else:
    print('No hay 2')

Dës Struktur ass entstanen nodeems se gesinn hunn datt et néideg war an datt vill Leit alternativ Weeër benotze fir dëst z'erreechen. Sou hëllefen se de Leit a kréien e méi liesbare Code

fir _ an iterable

Ech hunn dat an e puer Programmer gesinn obwuel ech et ni benotzt hunn.

Wa mir en Objet, Lëscht, Wierderbuch, etc iteréieren, awer den Inhalt vun dësen Elementer interesséiert eis net, kënne mir et mat _ uginn

E Beispill:

Mir wëllen d'Elementer vun enger Lëscht zielen, awer et ass mir egal wat et enthält, mir wëllen nëmmen hir Längt.

h2=[ 'Valencia', 'Castellón', 'Alicante']
count = 0
for _ in h2:
    cont += 1

A ville Siten recommandéiere se net dës Praxis ze mëssbrauchen. Ech weess wierklech net d'Virdeeler déi et presentéiert, ass et méi séier?

réckgängeg

zréck fir Loop. Fir vun Enn bis Ufank ze iteréieren

Et benotzt d'Reversed () Funktioun, déi am Python 3 agefouert gëtt

h2=[ 'Valencia', 'Castellón', 'Alicante']

for j in reversed(h2):
    print (j)

Looping mat zwee Indizes, Wäert vum iterable an Index

Mat enumerate () kënne mir mat den Indizes vun enger Kollektioun Aarbecht. Well vill Mol, nieft dem Wäert vum iterablen Objet selwer, si mir un säin Index interesséiert.

h2=[ 'Valencia', 'Castellón', 'Alicante']

for j, h in enumerate(h2):
    print j, '-->', h2[i] 

Iteréieren iwwer 2 Lëschten

Eng aner ganz interessant Optioun ass zip() déi eis Aarbecht méi einfach mécht an eise Code méi einfach a méi liesbar mécht.

h2=[ 'Valencia', 'Castellón', 'Alicante']
cod=[100, 200, 300]

for j, h in zip(h2, cod):
    print h2, '-->', cod 

Am Python 2.x gouf izip () benotzt fir dës Funktioun ze verbesseren, awer am Python 3 ass izip zip ()

Looping an zortéierter Uerdnung

Iteréiert an Uerdnung mam Wäert vum Objet amplaz no sengem Index. sortéiert () benotzt

colors = ['rojo', 'amarillo', 'verde']

for color in sorted(colors):
    print color

A wa mir dat no hanne wëllen maachen

colors = ['rojo', 'amarillo', 'verde']

for color in sorted(colors, reverse=True):
    print color

Benotzerdefinéiert Zort Uerdnung

colors = ['rojo', 'amarillo', 'verde']

for color in sorted(colors, key=len):
    print color

Sentinel Wäert an fir Loop

De Sentinelwäert ass e Wäert deen d'Loop op en Enn mécht. Et gëtt normalerweis an enger iwwerdeems Loop presentéiert, awer de Raymond Hettinger weist eis wéi een et mat engem fir benotzt, wat méi séier ass

blocks = []
for block in iter(partial(f.read, 32), ''):
    blocks.append(block)
    print (block)

Traverse Dictionnairen mat fir

Dictionnairen si wesentlech Tools fir Bezéiungen auszedrécken a Gruppéierungen ze maachen.

Dir kënnt d'Wörterbuch op eng traditionell Manéier duerchgoen mat fir, awer dat wäert net all d'Informatioun zréckginn, mir kënnen net mat Wäerter an Indizes wéi dat schaffen, wa mir net ufänken Zähler an aner ze addéieren Elementer.

d = {'casa': 'azul', 'coche': 'rojo', 'hombre': 'verde'}

for k in d.keys():
    if k.startswith('r'):
        del d[k]

Op dës Manéier, ausser d'Elementer ze gesinn, kënne mir d'Wörterbuch änneren andeems Dir Elementer verännert oder se läschen, gläichzäiteg datt d'For Loop iteréiert gëtt.

d.keys () rifft d'Argumenter a mécht eng Kopie déi et an enger Lëscht späichert déi mir änneren kënnen.

Indexen a Wäerter ze kréien amplaz eppes traditionells an dat ass déi éischt Saach déi am Kapp kënnt fir déi vun eis déi ufänken ze programméieren

for k in d:
    print k, '-->', d[k]

Mir wäerten dës vill méi séier Optioun benotzen

for k, v in d.items():
    print k, '-->', v

iteritems() wéi items()

Diskussioun iwwer Loops am Python vum Raymond Hettinger

Et ass en alen awer ganz illustrative Video, wou de Raymond Hettinger eis an den éischten 20 Minutten déi verschidde Méiglechkeete vu Loops am Python léiert an eis Beispiller gëtt, wéi se Strukturen, déi vill vun de Leit vill benotzt ginn, a Funktiounen ëmwandelen, fir de Loop méi liesbar ze maachen a méi einfach Code.

Verloossen e Commentaire