Vés al contingut

Python 3 per a no programadors/Decisions

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(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(input("Número? "))"
  2. després avalua la condició "if n < 0:".
    1. Si n és menor que zero Python executa la línia "print("El valor absolut de", n, " és ", -n)".
    2. En altre cas (indicat per al 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 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 és l'ordre elif. Aquesta es diferencia de l'else. Si l'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")

Dona 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]