Programación Orientada a
Objetos - 2016375
Grupo 2 – Andrés Felipe Cantor
Facultad de Ingeniería –Departamento de Ingeniería de Sistemas
y Computación
Contenido
• Operadores en Python
– Operadores aritméticos
– Operadores de comparación
– Operadores lógicos
– Operadores de Asignación
– Operadores de String
– Operadores de Casteo
– Operadores a nivel de bit
– Precedencia de operadores
• Ejercicios
Operadores en Python
• Los operadores en Python nos permiten
aplicar operaciones sobre dos o más variables
para obtener un resultado que puede ser del
mismo o diferente tipo que las variables
originales. Los operadores se dividen en
airtméticos, de comparación, lógicos, de
asignación y a nivel de bit.
Operadores aritméticos
Operador Descripción Ejemplo Resultado
+ Suma 5+3 8
- Resta 5-3 2
* Multiplicación 5*3 15
/ División 5/2 2.5
// División entera 5 // 2 2
% Módulo (residuo) 5%2 1
** Exponente 5 ** 2 25
• / -> Siempre devuelve un float
• // -> Devuelve float si alguno de los valores es un float, de otra forma devuelve
entero
• % -> útil para ciclos circulares y generación de números aleatorios en ciertos rangos
(criptografía)
Operadores aritméticos (cont)
Nivel Operador Descripción Ejemplo
1 () Paréntesis (2 + 3) * 4 = 20
2 ** Exponente 2 ** 3 = 8
Positivo/Negativo
3 +x, -x -2 ** 2 = -4
unario
Multiplicación,
4 *, /, //, % División, División 15 / 3 * 2 = 10
entera, Módulo
5 +, - Suma y Resta 2+3-1=4
• PEMDAS: Paréntesis, Exponentes, Multiplicación/División, Adición/Sustracción
• Usar paréntesis cuando haya duda
• Los paréntesis mejoran la legibilidad
• Mejor usar más paréntesis que arriesgarse a errores
• Cuando la expresión sea compleja, es mejor dividirla en partes más pequeñas para mayor
claridad.
Operadores de comparación
Operador Nombre Descripción Ejemplo Resultado
Compara si dos
== Igual que valores son 5 == 5 True
iguales
Compara si dos
!= Diferente de valores son 5 != 3 True
diferentes
Compara si el
> Mayor que primer valor es 5>3 True
mayor
Compara si el
< Menor que primer valor es 5<8 True
menor
Mayor o igual Compara si es
>= 5 >= 5 True
que mayor o igual
Menor o igual Compara si es
<= 5 <= 5 True
que menor o igual
Operadores de comparación (cont)
• Usos comunes
• Estructuras condicionales
• En Bucles
• En Validaciones
Operadores lógicos
Operador Descripción Tabla de Verdad Ejemplo
Verdadero si ambos True and True =
and x > 0 and x < 10
operandos son True True
Verdadero si al
edad < 13 or edad >
or menos un True or False = True
65
operando es True
Invierte el valor
not not True = False not is_valid
booleano
Operadores lógicos (cont)
• Prioridad
– not (mayor prioridad)
– and
– or (menor prioridad)
• Evaluación acelerada (short circuit)
– AND: Si el primer operando es False, no evalúa el
segundo
– OR: Si el primer operando es True, no evalúa el
segundo
Operadores de Asignación
Operador Descripción Ejemplo Equivalente a
= Asignación simple x=5 x=5
+= Suma y asignación x += 3 x=x+3
-= Resta y asignación x -= 2 x=x-2
Multiplicación y
*= x *= 4 x=x*4
asignación
/= División y asignación x /= 2 x=x/2
División entera y
//= x //= 3 x = x // 3
asignación
%= Módulo y asignación x %= 3 x=x%3
Potencia y
**= x **= 2 x = x ** 2
asignación
Operadores de Asignación (cont)
• Usos comunes
– En Bucles
– Actualización de variables
– Operaciones con strings
• En Python, no existe el operador de
incremento/decremento (++ o --) como en
otros lenguajes. Se usa += 1 o -= 1 en su lugar.
Operadores String
Operador Descripción Ejemplo Resultado
+ Concatenación "Hola" + " Mundo" "Hola Mundo"
* Repetición "Hola" * 3 "HolaHolaHola"
[] Indexación "Python"[0] "P"
[:] Slicing "Python"[1:4] "yth"
in Pertenencia "y" in "Python" True
not in No pertenencia "x" not in "Python" True
Operadores String (cont)
• Uso de F-Strings para concatenación de variables tipo string,
especialmente para creación de frases o impresión
Operadores de Casteo
Operador Descripción Ejemplo Resultado
int() Convierte a entero int("123") 123
float() Convierte a decimal float("12.34") 12.34
str() Convierte a string str(123) "123"
Convierte a
bool() bool(1) True
booleano
list() Convierte a lista list("Python") ['P','y','t','h','o','n']
tuple() Convierte a tupla tuple([1,2,3]) (1,2,3)
Convierte a
set() set([1,2,2,3]) {1,2,3}
conjunto
Operadores de Casteo (cont)
Operadores a nivel de bit
Ejemplo
Operador Nombre Descripción Resultado
Binario
1 si ambos bits 1010 & 1100 =
& AND 8
son 1 1000
1 si algún bit es 1010 | 1100 =
| OR 14
1 1110
1 si los bits son 1010 ^ 1100 =
^ XOR 6
diferentes 0110
Invierte todos
~ NOT ~1010 = -(1011) -11
los bits
Desplaza bits a 1010 << 1 =
<< Shift Left 20
la izquierda 10100
Desplaza bits a 1010 >> 1 =
>> Shift Right 5
la derecha 0101
Operadores a nivel de bit (cont)
• a = 10
• b = 12
Ejercicios
– print(a & b)
– print(a | b)
– print(a ^ b)
– print(~a)
– print(a << 1)
– print(a >> 1)
Operadores a nivel de bit (cont)
• Optimización de memoria (e.g. validación de
estados o permisos)
• Operaciones con potencias de 2
Precedencia de operadores
Nivel Operadores Descripción Ejemplo
1 () Paréntesis (1 + 2) * 3
2 ** Exponenciación 2 ** 3
Unarios (positivo, negativo,
3 +x, -x, ~x -3, ~5
NOT bit a bit)
Multiplicación, división,
4 *, /, //, % 4 * 2, 7 / 3
división entera, módulo
5 +, - Suma y resta 5 + 3, 10 - 4
6 <<, >> Desplazamiento bit a bit 8 << 1, 16 >> 2
7 & AND bit a bit 5&3
8 ^ XOR bit a bit 5^3
9 | OR bit a bit 5|3
==, !=, >, >=, <, <=, is, is not, in, Comparaciones, identidad,
10 a == b, x in y
not in pertenencia
11 not NOT lógico not True
12 and AND lógico True and False
13 or OR lógico True or False
Precedencia de operadores (cont)
• Los paréntesis siempre tienen prioridad
• Úsalos para modificar la precedencia
• Operadores del mismo nivel se evalúan de izquierda a derecha
• Excepción: exponenciación (**) se evalúa de derecha a izquierda
• Los operadores lógicos (and, or, not) tienen la precedencia más baja
• 'not' tiene mayor precedencia que 'and', que a su vez es mayor que 'or'
La legibilidad del código es más importante que la brevedad. Cuando una
expresión se vuelve compleja, considera dividirla en partes más simples o usar
variables intermedias.
Ejercicios
• ejercicio1 = 2 + 3 * 4 ** 2 - 1
• ejercicio2 = (2 + 3) * 4 ** 2 - 1
• ejercicio3 = 10 / 2 * 3
x=5
y = 10
z = 15
• ejercicio4 = x < y and y < z or x == 5
• ejercicio5 = not x > y and z > y
• ejercicio6 = x <= y <= z
Ejercicios (cont)
a = 5 # 101 en binario
b = 3 # 011 en binario
• ejercicio7 = a & b | a << 1
• ejercicio8 = ~a & b
• ejercicio9 = (a | b) ^ (a & b)
• ejercicio10 = 2 * 3 ** 2 + 1 > 15 and 3 * 2 + 1 < 10
• ejercicio11 = not 2 + 2 == 5 and 3 * 2 >= 6
• ejercicio12 = 3 < 4 < 5 and not 4 > 5
Ejercicios (cont)
a = 5 # 101 en binario
b = 3 # 011 en binario
• ejercicio7 = a & b | a << 1
• ejercicio8 = ~a & b
• ejercicio9 = (a | b) ^ (a & b)
• ejercicio10 = 2 * 3 ** 2 + 1 > 15 and 3 * 2 + 1 < 10
• ejercicio11 = not 2 + 2 == 5 and 3 * 2 >= 6
• ejercicio12 = 3 < 4 < 5 and not 4 > 5
Gracias