============ Condicionals ============ Sentència condicional --------------------- - :term:`Sentència` usada per al :term:`flux d'execució` condicional - Sintaxi: .. sourcecode:: python3 if expressió_booleana_1: sentències_1 elif expressió_booleana_2: sentències_2 ... else: sentències_alternatives - Flux d'execució condicional: - Avalua les expressions booleanes una rere l'altre fins que troba la primera que s'avalua a :code:`True` - Aleshores executa les sentències associades a la :term:`condició` - Si totes les expressions s'avaluen a :code:`False` - Aleshores executa les sentències alternatives - Només s'executa **un** dels blocs de sentències - Exemple >>> def signe(nombre): ... if nombre > 0: ... s = 1 ... elif nombre < 0: ... s = -1 ... else: ... s = 0 ... return s >>> signe(-3) -1 >>> signe(0.0) 0 >>> signe(4.3) 1 Condicional alternatiu ---------------------- - Les clàusules :code:`elif` es poden ometre - Sintaxi: .. sourcecode:: python3 if expressió_booleana: sentències_si_cert else: sentències_si_fals - Executa alternativament un bloc de sentències o un altre en funció d'una :term:`condició` - Exemple: :doc:`fi:temes/iteracions/Successions_parell_senar/index` >>> def terme_parell_senar_1(i, terme_ant): ... if (i-1)%2 == 0: ... terme = terme_ant + 5 ... else: ... terme = 2*terme_ant ... return terme >>> i, x = 1, 1 >>> i += 1 >>> x = terme_parell_senar_1(i, x) >>> i, x (2, 2) >>> i += 1 >>> x = terme_parell_senar_1(i, x) >>> i, x (3, 7) Condicional simple ------------------ - La clàusula :code:`else` també es pot ometre - Sintaxi: .. sourcecode:: python3 if expressió_booleana: sentències - Protegeix l'execució d'un bloc de sentències amb una :term:`condició` - Exemple >>> def aplica_descompte(preu, preu_minim_descompte, perc_descompte): ... if preu >= preu_minim_descompte: ... preu = preu*(1 - perc_descompte/100) ... return round(preu, 2) >>> aplica_descompte(73.28, 50, 20) 58.62 >>> aplica_descompte(50, 50, 10) 45.0 >>> aplica_descompte(37.234, 50, 10) 37.23 Exercicis --------- - :doc:`fi:temes/condicionals/Equació_Segon_Grau/index`, punt 3 - :doc:`fi:temes/condicionals/Dates/index` - :doc:`fi:temes/funcions/Interval/index` - :doc:`fi:temes/condicionals/Fidelització/index`, punt 1 - :doc:`fi:temes/condicionals/Funcions_definides_a_trossos/index` - :doc:`fi:temes/condicionals/Natació/index` - :doc:`fi:temes/condicionals/Impostos/index` - :doc:`fi:temes/condicionals/Llei_de_Hooke/index`