Tipos primitivos (Inmutables)
Aqui tenemos los tipos de datos más básicos de existentes en Python.
# Esto es un comentario inline
valor_nulo = None
numero = 42
decimal = 3.14
complejo = (5.8 + 3j)
texto = "Hola, mundo"
es_verdadero = True
datos_binarios = b"Hola"
Operadores
Aritméticos
1 + 1 # => 2
8 - 1 # => 7
10 * 2 # => 20
35 / 5 # => 7.0 # El resultado de la division siempre es un float
# división entera
5 // 3 # => 1
-5 // 3 # => -2
5.0 // 3.0 # => 1.0 # funciona tambien para coma flotante (floats)
-5.0 // 3.0 # => -2.0
# módulo o resto de la división
7 % 3 # => 1
-7 % 3 # => 2
# potencia
2 ** 3 # => 8
# prioridad con los paréntesis
1 + 3 * 2 # => 7
(1 + 3) * 2 # => 8
Lógicos
# Importante la mayuscula inicial.
True # => Verdad
False # => Falso
not True # => Falso
not False # => Verdad
True and False # => False
False or True # => True
# True equivale a 1 y False a 0
True + True # => 2
True * 8 # => 8
False - 5 # => -5
# Comparaciones
0 == False # => True
2 > True # => True
2 == True # => False
-5 != False # => True
# None, 0 y valores vacios de strings/lists/dicts/tuples/sets evalúan a False.
# El resto a True
bool(0) # => False
bool("") # => False
bool([]) # => False
bool({}) # => False
bool(()) # => False
bool(set()) # => False
bool(4) # => True
bool(-6) # => True
# Conversiones de tipo y operadores logicos
bool(0) # => False
bool(2) # => True
0 and 2 # => 0
bool(-5) # => True
bool(2) # => True
-5 or 0 # => -5
# Igualdad es ==
1 == 1 # => True
2 == 1 # => False
# Diferente es !=
1 != 1 # => False
2 != 1 # => True
# Otros comparadores
1 < 10 # => True (menor estricto a)
1 > 10 # => False (mayor estricto a)
2 <= 2 # => True (menor o igual a)
2 >= 2 # => True (mayor o igual a)
# Conocer si un valor está dentro de un rango
1 < 2 and 2 < 3 # => True
2 < 3 and 3 < 2 # => False
# Pero se ve más claro si hacemos esto
1 < 2 < 3 # => True
2 < 3 < 2 # => False
# is es diferente a ==
a = [1, 2, 3, 4] # se almacena en la variable a la lista de valores 1, 2, 3, 4.
b = a # b apunta a a
b is a # => True, a y b apuntan al mismo objeto
b == a # => True, los objetos a y b son iguales en valor
b = [1, 2, 3, 4] # se almacena en la variable b la lista de valores 1, 2, 3, 4.
b is a # => False, a y b no apuntan al mismo objeto
b == a # => True, los objetos a y b son iguales en valor
Operaciones sobre cadenas de texto
También se pueden realizar operaciones con cadenas de texto, aqui se explican algunas.
# cadenas de texto (str)
"Esto es una cadena de texto"
'Esto tambien'
# concatenar cadenas de texto
"Hola " + "mundo!"
"Hola " "mundo!" # Tambien es posible concatenar sin el operador +
# Acceso a caracter de una cadena (str)
"Hola mundo!"[0] # => 'H'
"Hola mundo!"[2] # => 'l'
"Hola mundo!"[-1] # => '!'
"Hola mundo!"[-2] # => 'o'
# Longitud de una cadena de texto
len("Hola mundo!") # => 11
# f-strings
nombre = "Howl"
f"El corazón de {nombre} lo tenía Calcifer" # => El corazón de Howl lo tenía Calcifer"
f"{nombre} tiene {len(nombre)} caracteres" # => "Howl tiene 4 caracteres"
# None también es un objeto
None
type(None) # => <class 'NoneType'> objecto de tipo NoneType
# No usar el operador == para comparar objetos a None. Usemos is
"etc" is None # => False
None is None # => True