➕ Ampliació de coneixements
Per poder continuar treballant amb dades en Python és essencial entendre, a nivell molt bàsic, quins operadors lògics i de comparació existeixen en aquest llenguatge de programació. Els operadors lògics i de comparació solen representar accions que impliquen dos estats oposats (ON/OFF, sí/no, etc). Només es consideren dos valors: True o False, sempre amb la primera lletra amb majúscula.
👉 Operador de comparació: IGUAL (==)
La doble igualtat s'empra per saber si un valor és igual a un altre. La resposta retornada per Python sempre serà True (vertader) o False (fals).
Exemple 1: comparem dos nombres
# Variables
n1 = 10
n2 = 10
# Execució
print(n1 == n2)
Resultat:
True
Exemple 2: seguim comparant dos nombres
# Variables
n1 = 5000
n2 = 5002
comparacio = (n1 == n2)
# Execució
print(comparacio)
Resultat:
False
Exemple 3: comparem dues cadenes de text str
# Variables
paraula1 = 'Alfonso'
paraula2 = 'alfonso'
# Execució
print(paraula1 == paraula2)
Resultat:
False
Exemple 4: donem-li una volta més i aconseguirem que l'exemple anterior sigui vertader
# Variables
paraula1 = 'Alfonso'
paraula2 = 'alfonso'
# Execució
print(paraula1.lower() == paraula2.lower())
Resultat:
True
👉 Operador de comparació: DIFERENT DE (!=)
El signe d'exclamació i l'igual s'empren per saber si dos o més valors són diferents entre si. La resposta que retorna Python sempre serà True (vertader) o False (fals).
Exemple 1: comparem dos nombres
# Variables
n1 = 1004
n2 = 1004.5
# Execució
print(n1 != n2)
Resultat:
True
👉 Operador de comparació: MAJOR QUE (>), MENOR QUE (<)
El signe de major o menor s'utilitza per saber si un valor és major o menor que un altre conegut. La resposta que retorna Python sempre serà True (vertader) o False (fals).
Exemple 1: verifiquem quin nombre és major
# Variables
n1 = 1/8
n2 = 1/4
# Execució
print(n1 > n2)
Resultat:
False
Exemple 2: verifiquem quin nombre és menor
# Variables
n1 = 17
n2 = 27
# Execució
print(n1 < n2)
Resultat:
True
👉 Operador de comparació: MAJOR O IGUAL QUE (>=), MENOR O IGUAL QUE (<=)
El signe de major/menor acompanyat d'un igual s'empra per saber si un valor és major/menor o igual que el que apareix a continuació a la seva dreta. La resposta que retorna Python sempre serà True (vertader) o False (fals).
Exemple 1: comparem dos nombres
# Variables
n1 = 50
n2 = 50
# Execució
print(n1 >= n2)
Resultat:
True
Exemple 2: seguim comparant dos nombres
# Variables
n1 = 1037
n2 = 1115
# Execució
print(n1 <= n2)
Resultat:
True
👉 Operador lògic: I (and)
L'operador lògic AND (i) retorna True quan en comparar dos o més valors tots deuen ser vertaders. En cas contrari, retorna False. Per aprendre el seu funcionament podem fer servir la següent taula de la veritat que mostrarà els casos possibles i resultats d'una operació lògica:
| A | B | A && B |
| True | True | True |
| True | False | False |
| False | True | False |
| False | False | False |
Exemple 1: veurem un exemple senzill amb nombres
# Variables
n1 = 10
n2 = 20
n3 = 30
# Execució
print(n1 <= n2 and n2 <= n3)
Resultat:
True
Exemple 2: veurem ara un exemple en format de text
# Variables
joan_futbolista = True
joan_estudiant = True
joan_pare = True
# Execució
print(joan_futbolista and joan_estudiant and joan_pare)
Resultat:
True
👉 Operador lògic: O (or)
L'operador lògic OR retorna True quan en comparar dos o més valors es compleix alguna condició. En cas contrari, retorna False.
| A | B | A || B |
| True | True | True |
| True | False | True |
| False | True | True |
| False | False | False |
Exemple 1: veurem un exemple senzill amb nombres
# Variables
n1 = 22
n2 = 20
# Execució
print(n1 < n2 or n1 == n2)
Resultat:
False
Exemple 2: continuam amb l'exemple anterior...
# Variables
joan_futbolista = True
joan_estudiant = False
joan_pare = True
# Execució
print(joan_futbolista or joan_estudiant or joan_pare)
Resultat:
True
👉 Operador lògic: NO (not)
L'operador lògic NOT inverteix el valor booleà d'una variable. En cas de ser True passarà a ser False.
| A | ! A |
| True | False |
| False | True |
Exemple 1:
# Variables
n1 = 100
n2 = 104
# Execució
print(not(n1 < n2))
Resultat:
False
Exemple 2:
# Variables
pere_carpinter = True
# Execució
print(not(pere_carpinter))
Resultat:
False
👉 A tenir en compte dels operadors de comparació i lògics
- La resposta dels operadors de comparació SEMPRE serà True o False segons es compleixi o no la condició.
- Els operadors lògics no tenen el mateix ordre de prioritat, segueixen aquest ordre: NOT > AND > OR. Recorda que pots forçar l'ordre d'avaluació amb l'ús de parèntesis.
- Els operadors lògics permeten comparar diferents tipus d'arguments: nombres, cadenes de text...
- Les constants, None, zero de qualsevol tipus (int = 0, float = 0.0) o seqüències [] i cadenes de text " " buides, avaluen com a False. La resta de nombres avaluen com a True
Exemple:
bool("") # False
bool("Hola") # True
bool(0.0) # False
bool(10) # True
bool(None) #False
- Quan hi ha una operació lògica, generalment, primer s'avalua el primer operand i si aquest no és suficient per avaluar l'expressió sencera, aleshores s'avalua el següent.
- AND. Si un dels dos valors és False, ja no avaluarà més, perquè la resposta serà sempre False i serà aquest el que retornarà (només retornarà True si els dos valors són True).
Exemple 1:
# Operació lògica
print(3 and " ") # True and False
# Execució
# Retorna FALSE, el segon valor (cadena de text buida), perquè el primer és vertader
Exemple 2:
# Operació lògica
print(3 and "Hola") # True and True
# Execució
Hola # Retorna TRUE, el segon valor, perquè el primer és vertader i necessita avaluar el segon per confirmar la comparació.
- OR. Si el primer valor és True, Python no avaluarà el següent perquè l'expressió completa serà True (només retornarà False si ambdues ho són).
Exemple 1:
# Operació lògica
print(3 or " ") # True and False
# Execució
3 # Retorna TRUE, el primer valor, perquè és vertader i no necessita seguir avaluant amb OR (només amb un True ja sap el resultat de l'operació)
Exemple 2:
# Operació lògica
print(0 or "Hola") # True and True
# Execució
Hola # Retorna TRUE, el segon valor, perquè és vertader
- En el cas de l'operació lògica NOT, sempre retornarà una dada booleana, True o False, i no un valor concret.
Exemple:
# Operació lògica
not 0 or "Hola" # True or True
# Execució
True # Retorna not 0 (TRUE), el primer valor, no necessita avaluar la segona condició perquè només amb un TRUE ja sap el resultat de l'operació
# Retorna True i no [not 0] perquè l'operador lògic NOT sempre resol amb True o False
Taula resum