9. Judici `` si '' `` else ''¶
El judici `` si '' '`else' 'serveix per executar un bloc de codi si es compleix una condició i un altre bloc de codi diferent si no es compleix la condició.
Es tracta d’un judici de ** control de flux **, és a dir, que controla l’ordre en què s’executen les instruccions del programa.
Exemple
edad = input('Escribe tu edad: ')
edad = int(edad)
if edad >= 18:
print("Eres mayor de edad")
else:
print("Eres menor de edad")
En aquest exemple, si la variable "edat " és superior o igual a 18, s'imprimirà "Ets d'edat legal ". En cas contrari, us imprimireu "Ets un menor ".
Sagnat de codi¶
A Python, les instruccions que pertanyen al `` si '`s'han d'escriure amb un desplaçament dret anomenat sagnat.
Aquest sagnat, per convenció, és de 4 espais. El codi es pot desplaçar una altra quantitat diferent d’espais i funcionarà, però és convenient complir aquest costum perquè és el que fa la majoria dels programadors de Python.
Totes les instruccions desplaçades s’executaran en funció de si es compleix el judici `` si es compleix. Les comandes que no tenen desplaçament sempre s’executaran
condicion = True
if condicion == True:
print('Este print() se ejecuta solo si la condición es verdadera')
print('Este print() también')
print('Este print() se ejecuta siempre, independientemente del if')
print('Porque este bloque ya no pertenece al if')
En altres llenguatges de programació, el codi també s’ha de desplaçar al dret de millorar la visualització de l’estructura del programa, però no és obligatori, ja que hi ha frases o caràcters que defineixen amb precisió l’inici i el final de cada bloc.
A Python, en canvi, és obligatori fer l’hemorràgia del codi perquè el programa pugui funcionar sense problemes.
Si el desplaçament de les línies de codi no és regular, també es produirà un error
if True:
print('Hola')
print('mundo')
^
Error en este punto porque no coinciden las sangrías
de las dos instrucciones.
Més endavant veurem com s’utilitza aquest desplaçament o sagnat en totes les instruccions de Python que acaben amb dos punts: “I que tenen blocs de codi subordinats, com ara bucles, funcions, classes, etc.
Exercicis¶
Escriviu un programa que comprovi si un número és positiu o negatiu i que imprimeix el resultat a la pantalla.
Pista
num = input('Escribe un número: ') num = int(num) if num ... :
Escriviu un programa que comprovi si un número és encara o estrany.
Per saber si un nombre és uniforme (divisible per dos), cal calcular la resta de la divisió per dos. Si la resta val zero, vol dir que el nombre és divisible per dos i és uniforme.
Pista
if (num % 2 == 0): print('...') else: print('...')
Escriviu un programa que demani dos números i escriviu quin dels dos és més gran que l’altre.
Escriviu un programa que comprovi si una condició és certa o falsa. Comproveu que el programa funcioni, si la condició és certa (veritable) com si fos fals (fals).
Pista
condicion = True if condicion: print('...') else: print('...')
Escriviu un programa que demani una nota i comproveu si la nota està aprovada o suspesa.
Escriviu un programa que demani una contrasenya i comproveu si la contrasenya és igual a la paraula "secret". En cas afirmatiu, heu d’escriure a la pantalla “contrasenya correcta”. En cas contrari, heu d'escriure a la pantalla "contrasenya incorrecta".