Condicionals

Sentència condicional

  • Sentència usada per al flux d’execució condicional

  • Sintaxi:

    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 True

      • Aleshores executa les sentències associades a la condició

    • Si totes les expressions s’avaluen a 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 elif es poden ometre

  • Sintaxi:

    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 condició

  • Exemple: Successions parell/senar

    >>> 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 else també es pot ometre

  • Sintaxi:

    if expressió_booleana:
        sentències
    
  • Protegeix l’execució d’un bloc de sentències amb una 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