**Sessió 5**. Iteracions amb *for* (II) =========================================== Objectius ~~~~~~~~~ - Resoldre amb fluidesa problemes amb strings, coneixent també els principals mètodes de la classe *str*, per ser capaç de identificar els problemes on aplicar-los. - Saber recórrer strings utilitzant la iteració *for* tant de la forma *accés per element*, com la de *accés per índex (posició)*, discriminant la conveniència de fer servir una o l'altre forma d'accés: * *for car in s*: * *for i in range(len(s))*: - Comprendre els processos de síntesi (creació), aplicació i filtratge en strings. - Fer servir el iterable *range* per generar i tractar seqüències d'enters. - Saber fer servir la iteració *for i in range(len(s))* per: * fer recorreguts d'un string *per índex* * fer recorreguts d'un string *amb finestra* * fer recorreguts de més d'un string *en parel·lel* - Saber resoldre problemes on es necesiten iteracions *for* niuades (*for*'s que contenen *for*'s). - Entendre i saber diferenciar els problemes que apliquen un esquema de recorregut dels que apliquen un esquema de cerca. | Conceptes ~~~~~~~~~ **Strings** - longitud d'un string: *len(s)*, conversions: *int(s)*, *float(s)*, ..., conversió a string *str()* - operacions de concatenació (*s1+s2*), repetició (*s1\*n*) i `comparacions `_ (*s1==s2*, *s1!=s2*, *s1`_ (*s.count()*, *s.find()*, *s.replace()*, *s.isdigit()*, *s.isalpha()*, *s.isupper()*, ...) - recorregut dels caràcters d'un string amb iteració *for* dels tipus: * *for car in s:* * *for i in range(len(s)):* - mètode *s.format()*: `escriptura amb format `_ **Iteració amb for** - iterables *range(n)*, *range(n, m)* i *range(n, m, k)* - iteració amb *for i in range* - recorregut d'un string *amb finestra*, recorregut de strings *en paralel* - iteracións *for* niuades - esquema de recorregut, esquema de cerca | Exemples ~~~~~~~~ .. toctree:: :maxdepth: 1 sessio_5/eebe/figures_amb_asteriscs | Exercicis ~~~~~~~~~ **Preparats pel professorat de la EEBE:** [1]_ .. toctree:: :maxdepth: 1 sessio_5/eebe/es_prefix sessio_5/eebe/quadrats_triangles_rombs **Preparats pel professorat de la ETSEIB:** `http://gie.cs.upc.edu/fi `_ [2]_ - `Prefix i sufix comú `_ - `Intecanviar de 2 en 2 `_ .. **Preparats al Jutge:** `https://jutge.org `_ [3]_ .. **Preparats al intèrpret online Python tutor:** `www.pythontutor.com `_ [4]_ | Exercicis adicionals ~~~~~~~~~~~~~~~~~~~~ **Preparats pel professorat de la EEBE:** [1]_ **Preparats pel professorat de la ETSEIB:** `http://gie.cs.upc.edu/fi `_ [2]_ **Preparats al Jutge:** `https://jutge.org `_ [3]_ **Preparats al intèrpret online Python tutor:** `www.pythontutor.com `_ [4]_ | | Referències ~~~~~~~~~~~ - Principals: - `Capítol 7 del llibre de teoria `_ (*How to Think Like a Computer Scientist: Learning with Python 2nd Edition*) - `Capítol 8 `_ de la versió online del llibre *How to Think Like a Computer Scientist: Learning with Python 3* - `The Python Language Reference `_ Lloc web oficial amb la documentació online de Pyhton 3 - Secundàries: - `El tipus bàsic string `_ i `Les seqüències de caràcters (strings) `_ - `Mètodes de la classe string `_ - `La instrucció for `_ i `Ús de la instrucció for `_ - `Definició i ús del iterable range `_ - `Sintaxi del string al mètode format `_ i `Exemples d'us del mètode format en print's `_ | | | .. rubric:: Footnotes .. [1] Els exercicis d'aquest apartat han estat desenvolupats pel professorat del Departament de Ciències de la Computació (CS) i del Departament d'Enginyeria de Sistemes, Automàtica i Informàtica Industrial (ESAII) de l'Escola d'Enginyeria de Barcelona Est (EEBE) .. [2] Els exercicis i documents als que s'accedeix a través d'un link a la pàgina web *gie.cs.upc.edu* han estat desenvolupats per professorat del Departament de Ciències de la Computació (CS) de la UPC, i es troben publicats a la web de la l'assignatura *Fonaments de Informàtica* de la Escola Tècnica Superior de Enginyeria Industrial de Barcelona (ETSEIB) .. [3] The Virtual Learning Environment for Computer Programming © Jordi Petit and Salvador Roura, 2006-2016 .. [4] Python tutor és un intèrpret online molt complet que a més a més permet veure l’execució pas a pas. És molt útil per entendre el funcionament de Python o fins i tot per a trobar errors. A més a més, com que és en línia, no requereix instal·lar Python. Heu de fer servir la versió 3