2.1.3 Operadors en Python

Els operadors són símbols especials que realitzen operacions sobre valors i variables. En programació, els utilitzem per:

  • fer càlculs,
  • comparar valors,
  • combinar condicions.

A Python hi ha tres grups principals d’operadors:

  • Operadors aritmètics: càlculs (sumar, restar, multiplicar…)
  • Operadors relacionals: comparacions (igual, diferent, major, menor…). Estos operadors retornen valors booleans (True o False).
  • Operadors lògics: combinar condicions (and, or, not), també retornen valors booleans (True o False).

Estos operadors ens permetran crear programes que calculen, decideixen i comproven condicions.


1. Operadors aritmètics

Els operadors aritmètics s’utilitzen per a realitzar operacions matemàtiques bàsiques. Python ofereix estes operacions:

Operador Significat
+ Suma
- Resta
* Multiplicació
/ Divisió decimal
// Divisió entera (sense decimals)
% Mòdul (residu)
** Potència (exponent)

Exemples:

x = 10
y = 3

print(x + y)     # 13
print(x - y)     # 7
print(x * y)     # 30
print(x / y)     # 3.333...
print(x // y)    # 3
print(x % y)     # 1
print(x ** y)    # 1000

✔ Diferència important: / vs //

print(7 / 2)   # 3.5   (divisió decimal)
print(7 // 2)  # 3     (divisió entera)

1.1. Operadors d’assignació combinats

Són molt útils per actualitzar variables:

Operador Equivalent a…
x += 2 x = x + 2
x -= 3 x = x - 3
x *= 4 x = x * 4
x /= 2 x = x / 2

Exemple:

x = 5
x += 2  # x = x + 2
print(x)  # 7

En general els operadors d’assignació combinats funcionen de la següent manera:

Se pren el valor actual de la variable, s’aplica l’operació indicada amb el valor donat, i el resultat s’assigna de nou a la variable.


1.2. Operador + amb textos (concatenació)

L’operador + també pot utilitzar-se amb cadenes de text. En este cas, no suma, sinó que ajunta (concatena) els textos:

text1 = "Hola"
text2 = "món"
print(text1 + text2)

Eixida:

Holamón

Si volem un espai entre paraules, l’hem d’afegir nosaltres:

print(text1 + " " + text2)

Eixida:

Hola món

Diferència important: números vs textos

Amb números:

3 + 4    # 7

Amb textos:

"3" + "4"    # "34"

Python no suma textos, els concatena.


Error típic

edat = 18
print("Tens " + edat + " anys")   # ERROR

Este error passa perquè "Tens " és text, però edat és un número.


Solució: Convertir el número a text:

print("Tens " + str(edat) + " anys")

2. Operadors relacionals

Comparen dos valors i retornen True o False.

Operador Significat
== Igual
!= Diferent
< Menor
<= Menor o igual
> Major
>= Major o igual

Exemple:

edat = 18
print(edat >= 18)  # True
print(edat < 21)   # True
print(edat == 20)  # False
print(edat != 15)  # True

Important!!: Python pot comparar cadenes segons l’ordre alfabètic:

print("Ana" < "Juan")  # True

3. Operadors lògics

Els operadors lògics permeten combinar condicions, es a dir, comparar múltiples expressions al mateix temps. açò és útil quan volem prendre decisions més complexes en els nostres programes.

Són essencials en instruccions com if.

Operador Significat
and Les dues condicions són True
or Almenys una condició és True
not Inverteix True/False

Exemple:

print(3 > 2 and 5 > 1)   # True
print(3 > 4 or 2 > 1)    # True
print(not False)         # True

Exemple amb variables booleanes

plou = True
paragües = False

print(plou and paragües)  # False
print(plou or paragües)   # True
print(not plou)           # False

4. Errors habituals

És important reconéixer alguns errors bàsics que apareixen molt quan treballem amb operadors.


IndentationError (espais incorrectes)

if True:
print("hola")   # Incorrecte

Solució:

if True:
    print("hola")

NameError (variable no definida)

print(x)   # x no existeix

TypeError (sumar text i número)

edat = int(input("Edat: "))
print("Tens " + edat + " anys")  # Error

Solució:

print("Tens", edat, "anys")
# o:
print("Tens " + str(edat) + " anys")

Taula de precendència d’operadors en Phyton

Els operadors no s’avaluen d’esquerra a dreta sempre. Python segueix un ordre de prioritat (precedència), igual que en matemàtiques.

Els operadors amb més precedència s’executen abans.


Precedència (de major a menor)

Nivell Operador(s) Descripció Exemple Resultat
1 () Parèntesis (2 + 3) * 4 20
2 ** Potència 2 ** 3 8
3 + - (unaris) Signe positiu / negatiu -5 -5
4 * / // % Multiplicació, divisions, mòdul 10 // 3 3
5 + - Suma i resta 2 + 3 5
6 < <= > >= Comparacions 5 > 3 True
7 == != Igualtat / diferència 4 == 4 True
8 not Negació lògica not True False
9 and AND lògic True and False False
10 or OR lògic True or False True

Exemples de precedència

  • Exemple 1 — Sense parèntesis
print(2 + 3 * 4)

Resultat:

14
  • Primer 3 * 4, després 2 + 12.

  • Exemple 2 — Amb parèntesis
print((2 + 3) * 4)

Resultat:

20
  • Els parèntesis canvien l’ordre d’execució.

  • Exemple 3 — Comparacions i lògics
print(5 > 3 and 2 < 1)

Resultat:

False
  • Primer es resolen les comparacions, després l’and.

  • Exemple 4 — not té més prioritat que and
print(not False and True)

Resultat:

True
  • not FalseTrue, després True and True.

**Regla d’or **

Si tens dubtes, usa parèntesis. Fan el codi més clar i eviten errors.


En Resum:

Tipus d’operadors en Python

Tipus d’operador Per a què s’utilitza Exemple Resultat
Aritmètics Fer càlculs 7 * 3 21
De concatenació Ajuntar textos "Hola " + "tu" "Hola tu"
Relacionals Comparar valors 5 > 2 True
Lògics Combinar condicions True and False False

Operadors aritmètics

Operador Significat Exemple Resultat
+ Suma 5 + 3 8
- Resta 10 - 4 6
***** Multiplicació 6 * 2 12
/ Divisió decimal 7 / 2 3.5
// Divisió entera 7 // 2 3
% Mòdul (residu) 7 % 2 1
** Potència (exponent) 2 ** 3 8

Operador + amb textos (concatenació)

Exemple Resultat
"Hola" + "món" "Holamón"
"Hola" + " " + "món" "Hola món"
str(18) per convertir número "18"

Nota: El mateix operador + suma números però concatena textos.


Operadors d’assignació combinats

Operador Equivalent Exemple Resultat
x += 2 x = x + 2 si x = 5x += 2 7
x -= 3 x = x - 3 si x = 10x -= 3 7
x *= 4 x = x * 4 si x = 3x *= 4 12
x /= 2 x = x / 2 si x = 8x /= 2 4.0

Operadors relacionals

Operador Significat Exemple Resultat
== Igual 5 == 5 True
!= Diferent 5 != 3 True
< Menor 2 < 7 True
<= Menor o igual 3 <= 3 True
> Major 8 > 4 True
>= Major o igual 6 >= 9 False

Operadors lògics

Operador Significat Exemple Resultat
and Les dues condicions són True True and False False
or Almenys una és True False or True True
not Inverteix True/False not True False