La sentència if
ens permet comprovar una condició. Quan la condició
resulta ser certa, s'executa un bloc de sentències que anomenarem
bloc if). Quan la condició resulta ser falsa,
es processa un altre bloc de sentències que coneixerem com bloc else).
La clàusula else és opcional.
Example 6.1. Ús de la sentència if
#!/usr/bin/python # Filename: if.py number = 23 guess = int(raw_input('Enter an integer : ')) if guess == number: print 'Congratulations, you guessed it.' # el nou bloc comença aquí print "(but you do not win any prizes!)" # el nou bloc finalitza aquí elif guess < number: print 'No, it is a little higher than that' # un altre bloc # podem posar qualsevol sentència dins d'un bloc else: print 'No, it is a little lower than that' # per a arribar aquí cal que guess > number print 'Done' # Aquesta darrera sentència s'executa sempre, un cop executada la sentència if.
El programa demana un número a l'usuari i comprova si coincideix amb un cert número.
Assignem un número qualsevol a la variable number
, per exemple
el 23
. A continuació obtenim el número de l'usuari amb la
funció raw_input()
.
Podem entendre una funció com una peça de codi que podem reusar. N'aprendrem més sobre
funcions al següent capítol.
Passem una cadena a la funció raw_input
que mostra a l'usuari abans
d'esperar que l'introdueixin la resposta.
Un cop l'usuari escriu alguna cosa i prem la tecla Enter,
la funció ens retorna l'entrada en forma de cadena de text.
En aquest moment, el programa converteix la cadena a un enter fent servir
int
i guarda el resultat a la variable guess
.
En realitat, int
és una classe però tot el que necessitem
saber de moment és que ho podem fer servir per a convertir un string en un enter
(sempre i quant, la cadena contingui un enter vàlid, és clar).
A continuació compara el número introduït per l'usuari amb el que hem escollit. Si són iguals, escriu un missatge d'èxit. Fixem-nos en l'ús del sagnat o indentació per a indicar-li a Python a quin bloc pertanyen les sentències. Aquesta és la raó per la qual és tan important la indentació a Python. Confio en que a hores d'ara ja ens hàgim acostumat a la regla d'un tabulador per nivell d'indentació.
Fixem-nos també en que l'estructura if
finalitza amb el caràcter
dos punts ':
'.
Aquesta és la manera amb la que indiquem a Python que a continuació comença un nou
bloc d'instruccions.
A continuació comprova si el número introduït és menor que el nostre. En aquest cas
informa la usuaria què ha fet curt.
Aquí hem fet servir la clàusula
elif
que, en realitat, combina dos sentències
if else-if else
relacionades en una
if-elif-else
, fent el programa més fàcil de llegir i reduint els
nivells d'indentació requerits.
Les clàusules elif
i else
també han de finalitzar
amb dos punts al final de la línia, seguits dels blocs corresponents adequadament
indentats.
Podem disposar d'un nou if
dins del bloc if d'una sentència
if
- d'això en diem niuament de sentències
if
.
Recordem que les parts elif
i else
són
opcionals.
La sentència mínima vàlida és
if True: print 'Yes, it is true'
Un cop s'ha finalitzat l'execució de la sentència if
juntament amb els corresponents elif
i else
,
es passa a la següent sentència al bloc que conté la sentència
if
. En aquest cas, es tracta del bloc principal on va començar
l'execució del programa i la següent sentència és
print 'Done'
.
Un cop executada, Python es troba el final del programa i simplement acaba.
Hem vist que, fins i tot a un programa tan senzill com el de l'exemple, hi ha un bon nombre d'elements importants que, com a programadors, hem de tenir presents. Tots ells resulten força trivials (fins i tot sorprenentment senzills per a aquells amb experiència en C/C++) Al començament requereixen que estiguem atents, però, un cop ens comencem a trobar còmodes amb Python, ens semblaran "naturals".
Python no disposa d'una sentència equivalent a un switch
.
Podem fer servir sentències if..elif..else
per fer el mateix i,
de vegades, usar un diccionari per fer-ho més ràpid.