Python 3 per a no programadors/Decisions

Salta a la navegació Salta a la cerca

Instrucció if[modifica]

Per variar començarem amb un exemple, per tal d'escalfar motors... El següent programa calcula el valor absolut d'un enter:

n = int(raw_input("Número? "))
if n < 0:
   print("El valor absolut de", n, " és ", -n)
else:
   print("El valor absolut de", n, " és ", n)

Vet aquí un parell de resultats:

Número? -34
El valor absolut de -34 és 34
Número? 4
El valor absolut de 4 és 4

Analitzant pas a pas:

  1. Primer el programa demana la introducció del número "n = int(raw_input("Número? "))"
  2. desprès avalua la condició "if n < 0:".
    1. Si n es menor que zero Python executa la línia "print("El valor absolut de", n, " és ", -n)".
    2. En altre cas ( indicat per el codi else:) executa "print ("The absolute value of", n, "is", n)".

Expressat més formalment: Python avalua si l'expressió n < 0 és verdadera o falsa. I la instrucció if és seguida per un bloc d'instruccions que són executades si l'expressió és verdadera. Opcionalment després del if podem emprar la instrucció else i un altre bloc d'instruccions, el qual serà executat si l'expressió és falsa.

Cal prendre cura de que els blocs d'instruccions estiguin convenientment sagnats.

Hi ha una sèrie d'avaluacions diferents que una expressió pot tenir. Aquí hi ha una taula de tots ells:

operador funció
< menor que
<= menor o igual a
> major que
>= major o igual a
== igual
!= no igual

Una altra característica de la instrucció if es l'ordre elif. Aquesta es diferencia de l'else. Si la expressió original de l'if és falsa però l'expressió de l'elif és verdadera, s'executa el bloc d'instruccions dins de l'elif. Si les expressions de l'if i de l'elif són falses executa el bloc else. Vegem un exemple:

a = 0
while a < 10:
    a = a + 1
    if a > 5:
        print(a, ">", 5)
    elif a <= 7:
        print(a, "<=", 7)
    else:
        print("Cap de les expressions són verdaderes")

Dóna com a sortida:

1 <= 7
2 <= 7
3 <= 7
4 <= 7
5 <= 7
6 > 5
7 > 5
8 > 5
9 > 5
10 > 5

Com s'observa la instrucció elif a <= 7 només s'avalua si if a > 5 és falsa.

Es poden incloure més d'una instrucció elif, fet que ens permet avaluar múltiples expressions en una sola instrucció if.

Exemples[modifica]