Una operación en Python es una acción que se realiza sobre uno o más objetos (operandos).
Las operaciones están soportadas a través de operadores (ej., +, -, in) o métodos (ej., .append(), .upper()), cuyo comportamiento será específico según el tipo de objeto.
+
-
in
.append()
.upper()
None
0
0.0
0L
0x00
0b00
0o00
()
''
[]
{}
Cualquier valor “cero” equivale a False Cualquier valor diferente a “cero” equivale a True
No solo devuelven un valor booleano (True o False), sino que también pueden devolver uno de sus operandos.
True
False
x or y
x
y
x and y
not x
or
>>> a = 0 >>> b = 7 >>> a or b 7
a = 0
a or b
b
7
>>> a = 1 >>> b = 7 >>> a or b 1
a
1
and
>>> a = 0 >>> b = 7 >>> a and b 0
a and b
>>> a = 1 >>> b = 7 >>> a and b 7
not
>>> a = 0 >>> not a True >>> b = [] >>> not b True >>> b.append(5) >>> not b False
>>> canasta = [] >>> not canasta and 'La canasta esta vacia' or 'La canasta tiene algo' 'La canasta esta vacia' >>> canasta.append('manzana') >>> not canasta and 'La canasta esta vacia' or 'La canasta tiene algo' 'La canasta tiene algo'
>
<
>=
<=
==
!=
Los operadores is e is not en Python se utilizan para comparar la identidad de los objetos, no su valor.
is
is not
a = [1, 2, 3] b = a # b se refiere al mismo objeto que a c = [1, 2, 3] # c es un nuevo objeto con el mismo valor que a print(a == b) # True (mismo valor) print(a is b) # True (misma identidad) print(a == c) # True (mismo valor) print(a is c) # False (diferente identidad, aunque mismo valor)
>>> 2 > 1 True >>> 1.1 > 2 False >>> 1 +2j >= 1 Traceback (most recent call last): File "<python-input-6>", line 1, in <module> 1 +2j >= 1 TypeError: '>=' not supported between instances of 'complex' and 'int'
*
/
//
%
**
/ (División estándar): Siempre devuelve un float.
float
5 / 2 # Resultado: 2.5
// (División entera): Devuelve el cociente entero (redondea hacia abajo).
5.0 // 2 # Resultado: 2.0 -5 // 2 # Resultado: -3
% (**Módulo **): Devuelve el resto de la división. El signo del resultado es el del divisor.
5 % 2 # Resultado: 1 -7 % 3 # Resultado: 2 7 % -3 # Resultado: -2
División entera y módulo en una sola función:
>>> divmod(10,3) (3,1) >>> (10//3, 10%3) (3,1)
>>> #or >>> hex(0x0f | 0xf0) '0xff' >>> #and >>> hex(0x0f & 0xf0) '0x0' >>> #xor >>> hex(0x0f ^ 0xf0) '0xff' >>> #Corrimiento >>> hex(0x01 << 4), hex(0xF0 >> 4) ('0x10', '0xf') >>> #inversion de bits >>> hex(~0xF) '0x10'
abs()
>>> abs(-10) 10
int()
>>> int(3.14) 3 >>> int('123') 123 >>> int('0x313373', 16) 3224435 >>> int('1010', 2) 10
Se usa la función float() para convertir valores a números de coma flotante.
float()
De entero a float:
entero = 5 flotante = float(entero) # Resultado: 5.0 print(type(flotante)) #Output: <class 'float'>
De cadena a float:
cadena = "3.14159" flotante = float(cadena) # Resultado: 3.14159 print(type(flotante)) #Output: <class 'float'>
De booleano a float:
booleano_verdadero = True flotante_verdadero = float(booleano_verdadero) # Resultado: 1.0 booleano_falso = False flotante_falso = float(booleano_falso) # Resultado: 0.0 print(type(flotante_verdadero)) #Output: <class 'float'> print(type(flotante_falso)) #Output: <class 'float'>
Combinando con otras funciones:
cadena_con_espacios = " 42 " flotante = float(cadena_con_espacios.strip()) print(type(flotante)) #Output: <class 'float'>
Puntos importantes:
ValueError
1.0
.strip()