contingut
Š¦ikl per a Python i cicle mentre que ā declaracions eSCADA llenguatge, Ć©s a dir: operadors d'iteraciĆ³, detING repetir el codi nĆŗmero donat temps.
Š¦ŠøŠŗŠ» Per a ā Ńintaxis
Com ja s'ha explicat, cinclude for a Python Ć©s un iterador basat enŠ¹ per cicleidentitat. Ć©s ell fets per elements tuples Šø llista, vocabulari claus i un altre objectes iterables.
Un bucle a Python comenƧa amb la paraula clau for, seguida d'un nom de variable arbitrari que emmagatzema el valor del segĆ¼ent objecte en la seqĆ¼ĆØncia donada. La sintaxi general de for...in a Python Ć©s aixĆ:
per a: else:
components "seqĆ¼ĆØncies" es llisten un darrere l'altre variable de cicle. O millor, variable apunta a tal elements. Per a tothom d'ells es realitza una "acciĆ³".
Un bucle for senzill a Python amb un exemple especĆfic:
>>> idiomes = ["C", "C++", "Perl", "Python"] >>> per a x en idiomes: ... print(x) ... C C++ Perl Python >>>
El bloc else Ć©s especialth. Si a programaŃlaboral Ń Perl familiarŃ amb ell, que per als que interactuen Ń C i C++ - aixĆ² Ć©s una innovaciĆ³. SemĆ nticament aixĆ² funcions ŃidĆØnticament mentre bucle.
NomĆ©s s'executa quan el bucle no Ć©s "aturat" per la instrucciĆ³ break. Ćs a dir, nomĆ©s s'executa desprĆ©s que tots els elements hagin passat per la seqĆ¼ĆØncia especificada.
Operador Break en Python ā break
Si el programa tĆ© un bucle for necessari interromprela declaraciĆ³ de trencament, he completarvai programa flux voluntat contper ser sense activaciĆ³ d'una altra cosa.
MĆ©s sovint trencar frases en pythonuyutsya amb enunciats condicionals.
comestibles = ["colletes", "boles de massa", ous","nous"] per als aliments en comestibles: if food == "boles de massa": print("No menjo boles de massa!") break print("Genial, delicious " + menjar) else: print("Ćs bo que no hi hagi boles de massa!") print("El sopar s'ha acabat.")
Si executeu aquest codi, obtindreu el resultat segĆ¼ent:
Costelles bonĆssimes i delicioses. No menjo boletes! S'ha acabat el sopar.
Suprimim les "boles de massa" de la llista de dades existent i obtenim:
Costelles excelĀ·lents i delicioses Ous excelĀ·lents i deliciosos fruits secs excelĀ·lents i deliciosos El bĆ© que no hi havia boletes! S'ha acabat el sopar.
python skip operator ā continua
Diguem que l'antipatia de l'usuari cap a aquests productes no Ć©s tan gran com per abandonar completament el seu consum. Com a resultat, el bucle continua amb l'operador continue
. L'script segĆ¼ent utilitza la declaraciĆ³ continue
, per continuar iterant a travƩs de la llista sobre "contacte de boles".
comestibles = ["colletes", "boles de massa", ous","nous"] per a menjar en comestibles: if food == "boles de massa": print("No menjo boles de massa!") continue print("Genial, deliciĆ³s " + menjar) # aquest podria ser el codi per gaudir del menjar :-) else: print("Odio les boles de massa!") print("El sopar s'ha acabat.")
El resultat final:
Costelles bonĆssimes i delicioses. No menjo boletes! Uns ous bonĆssims i deliciosos fruits secs fantĆ stics. Odio les boles de massa! S'ha acabat el sopar.
IteraciĆ³ per llistes amb la funciĆ³ range().
Si voleu accedir als Ćndexs d'una llista, no estĆ clar com utilitzar un bucle for per a aquest propĆ²sit. Ćs possible accedir a tots els elements, perĆ² l'Ćndex de l'element romandrĆ inaccessible. Tanmateix, hi ha un mĆØtode per accedir tant a l'Ćndex de l'element com al propi element. Per a aixĆ² s'utilitza la funciĆ³ range()
combinat amb la funciĆ³ de longitud len()
:
Fibonacci = [0,1,1,2,3,5,8,13,21] per a i a l'interval(len(fibonacci)): print(i,fibonacci[i])
Aconseguir:
0 0 1 1 2 1 3 2 4 3 5 5 6 8 7 13 8 21
AtenciĆ³! Quan s'aplica
len()
Šŗlist
ortuple
, s'obtĆ© el nombre d'elements corresponent de la seqĆ¼ĆØncia donada.
Dificultats per repetir llistes
En iterar sobre una llista, es recomana evitar la dinĆ mica de la llista al cos del bucle. Per a mĆ©s claredat, podem oferir la segĆ¼ent opciĆ³:
colors = ["vermell"] per a i en colors: if i == "vermell": colors += ["negre"] if i == "negre": colors += ["blanc"] imprimir(colors)
QuĆØ passa en solĀ·licitar print(colours)
?
['vermell', 'negre', 'blanc']
Per evitar-ho, es recomana interactuar amb la cĆ²pia mitjanƧant rodanxes, com a l'exemple segĆ¼ent:
colors = ["vermell"] per a i en colors[:]: if i == "vermell": colors += ["negre"] if i == "negre": colors += ["blanc"] imprimir(colors )
Resultat:
['Vermell Negre']
S'ha canviat la llista colours
, perĆ² aquesta acciĆ³ no va afectar el bucle. Les dades que calia repetir es van mantenir sense canvis durant l'execuciĆ³ del bucle.
Enumerar en Python 3
Enumerar Ć©s una funciĆ³ de Python integrada. La majoria dels principiants, aixĆ com alguns programadors experimentats, no sĆ³n conscients de la seva existĆØncia. Us permet comptar automĆ ticament les iteracions del bucle. Per exemple:
per al comptador, valor a enumerate(some_list): print(counter, value)
function enumerate
tambƩ pren un argument opcional (el valor de l'origen, pres per defecte per 0
). La qual cosa la fa encara mƩs eficient.
la meva_lista = ['poma', 'plĆ tan', 'cirera', 'prĆ©ssec'] per a c, valor a enumerate(la meva_lista, 1): print(c, valor) # Resultat: # 1 poma # 2 plĆ tan # 3 cirera # 4 prĆ©ssec