Iteracions amb while¶
Iterar¶
Iterar és repetir l’execució d’un bloc de sentències
Iteracions determinades¶
La sentència
forpermet iterarsobre els elements d’un iterable (seqüència, diccionari, objecte fitxer)
for element in iterable: sentències(element)
sobre una enumeració dels elements d’un iterable
for índex, element in enumerate(iterable): sentències(índex, element)
sobre els índexs d’una seqüència (llista, tupla, string)
for índex in range(len(seqüència)): sentències(índex)
Les iteracions amb
forsobre estructures de dades o índexs són determinades: coneixem el nombre d’iteracions necessàries per resoldre el problema o, com a mínim, una fita superior
Generació de seqüències¶
Problemes en què cal generar una seqüència d’elements a partir de dades senzilles, com nombres, per exemple
Si coneixem el nombre d’iteracions, es poden resoldre amb
forfor índex in range(funció(nombre)): sentències(índex)
Per exemple:
Iteracions indeterminades¶
Una iteració és indeterminada quan desconeixem el nombre d’iteracions necessàries per resoldre el problema o una fita superior
El problema està resolt quan es compleix una condició. La condició pot indicar o bé que
encara cal continuar iterant, o bé que
cal aturar la iteració
Les condicions de continuar i aturar són contràries:
continuar == not aturarLa sentència
whileitera mentre la condiciócontinuarvalTrue:while continuar: sentències
Perill
si la condició continuar és sempre
True, l’execució no acaba. Diem que és una iteració infinita
Generació de seqüències¶
Per tal de generar una seqüència amb una iteració indeterminada, cal saber:
Calcular el primer element
Calcular el següent (a partir de l’anterior)
Una condició, o bé per a continuar el càlcul dels elements, o bé per a aturar-lo
L’esquema per recórrer i tractar els elements d’una seqüència és:
element = primer_element while continuar(element): tractar(element) element = següent(element)
Per exemple:
Successions i sèries¶
Les successions i les sèries són un cas particular de la generació de seqüències
La condició de continuar o acabar pot involucrar:
un terme de la successió
dos termes consecutius
la suma dels termes