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