**Sessió 2**. Expressions. Funcions ==================================== Objectius ~~~~~~~~~ * Escriure expressions vàlides i ser capaç d'avaluar-les correctament, en particular expressions booleanes * Saber fer servir les funcions predefinides, o les definides en mòduls importats. Utilitzar el mòdul *math* * Definir i utilitzar noves funcions: - Escriure la capçalera i els paràmetres - Escriure el cos de la funció correctament indentat (espais), retornar un o més valors * Resoldre problemes desenvolupant funcions en Python que utilitzin expressions i l'assignació. .. En particular escriure funcions que poden fer servir d'altres * Dissenyar funcions booleanes senzilles * Entendre la diferència entre escriure la solució a un problema en forma de funció envers de fer-ho en forma de programa principal * Fer ús d'IDLE per editar fitxers, importar mòduls i cridar i provar funcions. * Saber documentar una funció amb docstrings, i incorporar-hi doctests per a comprovar la seva correctesa | Conceptes ~~~~~~~~~ **Expressions** - expressions, operands, operadors, `operadors lògics `_ (`and, or, not `_) - `precedència d'operadors `_, associativitat - tipus d'una expressió - evaluació d'expressions - assignació, assignació múltiple - composició seqüencial **Funcions** - funcions, `funcions predefinides `_ (abs, min, max, len, int, float, str, type, ...) - funcions definides en mòduls externs: `math `_, random, statistics, ... - importació de mòdulos: *import* vs *from* - ús de funcions importades - definició d’una funció: - capçalera (paràmetres), cos (instruccions) i retorn del resultat - crida a una funció, paràmetres actuals - paràmetres i variables locals, àmbit de visibilitat - ordre d'execució, traça de la crida a una funció - instrucció *return*, funcions fructíferes (*fruitful*) i no fructíferes (*unfruitful*) | Exemples ~~~~~~~~ **Preparats pel professorat de la EEBE:** [1]_ .. toctree:: :maxdepth: 1 sessio_2/eebe/hms2s sessio_2/eebe/hms2s_dt **Preparats al intèrpret online Python tutor:** `www.pythontutor.com `_ [4]_ - `Avaluació d'un polinomi de segon grau `_ | Exercicis ~~~~~~~~~ **Preparats pel professorat de la EEBE:** [1]_ .. toctree:: :maxdepth: 1 sessio_2/eebe/esparell .. sessio_2/eebe/mrua **Preparats pel professorat de la ETSEIB:** `http://gie.cs.upc.edu/fi `_ [2]_ - `ETSEIB. Conversions `_ : apartats 2 i 5 - `ETSEIB. Física `_ : apartat 3 - `ETSEIB. Geometria `_ : apartats 5 i 6 - `ETSEIB. Contaminació `_ - `ETSEIB. Interval `_ **Preparats al Jutge:** `https://jutge.org `_ [3]_ - Llista 1: inici .. toctree:: sessio_2/jutge/update_arrival | Exercicis adicionals ~~~~~~~~~~~~~~~~~~~~ **Preparats pel professorat de la ETSEIB:** `http://gie.cs.upc.edu/fi `_ [2]_ - `ETSEIB. Geometria `_: apartats 2 i 4 - `ETSEIB. Vèrtexs d'un quadrat `_: apartats 1 a 3 - `ETSEIB. Equació de segon grau `_: apartat 1 - `ETSEIB. Funcions Matemàtiques `_ .. - `ETSEIB. Nòmines `_ - `ETSEIB. Zona de cerca `_ **Preparats al Jutge:** `https://jutge.org `_ [3]_ - Llista 1: inici .. toctree:: sessio_2/jutge/inici_1 | | Referències ~~~~~~~~~~~ - Principals: - `Capítol 3 i capitol 5 del llibre de teoria `_ (*How to Think Like a Computer Scientist: Learning with Python 2nd Edition*) - `Capítol 4 `_ i `capítol 6 `_ 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: - `Funcions predefinides en Python `_ - `Precedència d'operadors en Python `_ | | | .. 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