Conditionals ============ Valors i expressions booleanes ------------------------------ .. bool .. boolean values .. True .. False .. boolean expression .. == .. comparison operators .. != .. < .. > .. <= .. >= - Valors booleans: ``True`` (cert) i ``False`` (fals). - Tipus booleà. - Expressions booleanes: igualtat, desigualtat i comparacions. - `How to think ... Boolean values and expressions `__ Operadors booleans ------------------ .. logical operators .. and .. or .. not - Operadors booleans o lògics: ``and``, ``or`` i ``not``. - Semàntica (significat) dels operadors lògics: - ``A and B``: cert si tant ``A`` com ``B`` són cert i fals en qualsevol altre cas. - ``A or B``: fals si tant ``A`` com ``B`` són fals i cert en qualsevol altre cas. - ``not A``: cert si ``A`` és fals i fals si ``A`` és cert. - `How to think ... Logical operators `__ - `How to think ... Truth Tables `__ - `How to think ... Simplifying Boolean Expressions `__ - `How to think ... Logical opposites `__ Igualtat en nombres en coma flotant ----------------------------------- .. code:: python3 >>> x = 0.1*3 >>> y = 0.3 >>> x == y False >>> epsilon = 1e-7 >>> abs(x-y) < epsilon True - Cal decidir una *tolerància* :math:`\epsilon`. Execució condicional -------------------- .. conditional statements .. if .. condition .. block .. body .. pass - Composició condicional: permet protegir l'execució d'un bloc de sentències amb una condició. - Sintaxi: .. sourcecode:: python if expressió_booleana: # capçalera (header) sentències # cos (body) - El cos és un bloc (*block*): les sentències del bloc estan sagnades amb espais en blanc respecte de la capçalera. - `How to think ... Conditional execution `__ Execució alternativa -------------------- .. alternative execution .. else .. branches - Composició condicional: permet l'execució alternativa d'un bloc de sentències o d'un altre en funció d'una condició. - Sintaxi: .. sourcecode:: python if expressió_booleana: sentències_si_cert else: sentències_si_fals - Branques (*branches*) en el flux d'execució. - Sentència nul·la: ``pass``. - `How to think ... Conditional execution `__ Condicionals encadenats ----------------------- .. chained conditional .. elif - Composició condicional: permet un nombre arbitrari de branques protegides per expressions booleanes. - Sintaxi: .. sourcecode:: python if expressió_booleana_1: sentències_1 elif expressió_booleana_2: sentències_2 ... else: sentències_alternatives - `How to think ... Chained conditionals `__ Condicionals imbricats ---------------------- .. nested conditionals - Exemples de com evitar-los. - `How to think ... Nested conditionals `__ Funcions booleanes ------------------ .. boolean functions - `How to think ... boolean functions `_.