2.1. Variables#

En esta libreta aprenderás qué son las variables, cómo asignarles valores, y cómo manipularlas y trabajar con ellas. Entenderás la diferencia entre una variable y un valor, y comenzarás a explorar cómo Python maneja internamente estos conceptos a través de los objetos.

Primero comencemos a utilizar las celdas de código como una calculadora.

# Esta es una celda de código
# Podemos escribir comentarios poniendo el signo de gato "#"
# Ejecútala con ctrl + enter o el botón de "play".

print(3 + 4)  # Suma
print(2 * 5)  # Multiplicación
print(10 / 2) # División, observa que el resultado es un número decimal
print(10 // 2) # División entera, el resultado es un entero
print(2 ** 3) # Potencia
7
10
5.0
5
8

intenta jugar con la celda de código, haz tus propios cálculos. Ahora, estamos muy limitados si trabajamos así, para progresar a tareas más complejas, necesitamos variables.

2.1.1. ¿Qué es una variable?#

Importante

  • Valor: Es el dato en sí. Puede ser un número como 5, un texto como "hola", o algo más complejo.

  • Variable: Es un nombre que se asocia a un valor. Las variables nos permiten guardar información y referirnos a ella más adelante.

En Python, cuando haces una asignación como:

x = 5

Estás creando un nombre (x) que apunta a un valor (5). Decimos que x referencia al valor 5. Este valor es un objeto en Python.

nombre = "Juan"
edad = 30

Los nombres nombre y edad son variables. "Juan" y 30 son valores. Estos valores pueden cambiarse fácilmente:

edad = edad + 1

Ahora edad tiene un nuevo valor: 31.

2.1.2. ¿Qué significa que todo es un objeto en Python?#

Cada valor en Python es en realidad un objeto. Eso quiere decir que incluso algo tan simple como el número 5 tiene propiedades y comportamientos.

x = 5
type(x)

Esto te mostrará que el valor 5 es de tipo int, pero más adelante veremos qué significa eso. Por ahora, quédate con la idea de que los valores tienen un tipo y que Python usa objetos para representar todo.

Truco

Ojo: Los objetos son los valores, no las variables.

Ahora vamos a practicar con algunas asignaciones y operaciones con variables.

x = 3 # esta es una variable, su nombre es "x", su valor es "3".

print(x)
3

Observa que debajo de la celda está el número 3. Este número aparece porque la celda ejecutó print(x) y x es la varable con el valor 3, definido en la linea 5 con x = 3.

# Esta es otra celda de código.
# Vamos a asignar una nueva variable llamada "y" y le vamos a dar el valor de 5.
y = 5
# Ahora vamos a sumar las dos variables y mostrar el resultado.
suma = x + y
print(suma)
# Ahora vamos a restar las dos variables y mostrar el resultado.
8

Deberías ver ahora el número 8. Pero nota que no hemos modificado ni x ni y.

Qué pasa si queremos que x sea ahora igual a la suma de x y y.

Es decir:

\(x = x + y\)

Así como lo acabamos de escribir, en forma matemática, es válido en python.

Python fue diseñado para que el manejo de variables sea parecido a la notación matemática.

Intentémoslo.

x = x + y
print(x)
8

Deberías volver a ver el número 8, pero nota algo interesante, ejecuta la celda varias veces, verás que el numero continúa incrementándose más y más.

Esto sucede porque y vale 5 y el valor de x lo cambiamos con base en lo que vale x al momento de la ejecución del código, la primera vez, x vale 3, pero la segunda vale 8, la tercera 13, etcétera.

En la celda de abajo escribe un nuevo código que defina las variables x y y nuevamente, de tal forma que cuando se ejecute la celda múltiples veces no se siga incrementando su valor.

# Escríbe código aquí definiendo de nuevo a "x" y a "y".

# --------
x = x + y
print(x)
13

2.1.3. Mutabilidad de objetos#

En python existen dos tipos de objetos, los que son mutables y los que no. Hasta ahora hemos trabajado con tipos numéricos enteros, int en python. Los valores tipo int no son mutables, es decir, un dos no puede convertirse en tres.

Pero, ¿no es esto lo que acabamos de hacer?, en efecto NO.

Cuando decimos x = 3, el valor «3» es un objeto tipo int, y cuando sumamos y, otro objeto int con el valor «5», lo que estamos haciendo es creando un nuevo objeto con el valor 8, es decir, que el 3 no se convirtió en 8, sino que un nuevo objeto se asignó a la variable x.

Truco

Imagina las variables como «contenedores». Dentro de la copa puedes poner cualquier valor e incluso cambiarlo, en python, nada te previene de cambiar el valor de x por algo completamente diferente, como x = "hola".

Veremos lo tipos mutables en la siguiente lección, pero por ahora es importante recordar que los tipos int no son mutables, pero eso no quiere decir que no podamos cambiar las «variables», solo son los «valores» los que no pueden mutar.

2.1.4. ¿Cómo saber si un objeto es el mismo que otro?#

Aquí hay que separar dos conceptos: «Identidad» e «Igualdad».

2.1.4.1. Igualdad#

Si yo quiero saber si dos objetos son equivalentes, utilizo el operador ==. Por ejemplo, en python, otro tipo de datos son los float. Los tipos float, tienen punto decimal. Podríamos comparar x=3 y y=3.0 y ver si son equivalentes.

x = 3
y = 3.0
print(x == y) # True

2.1.4.2. Identidad#

Si lo que quiero es saber si dos variables apuntan al mismo objeto, entonces uso el operador is. Es decir, en el ejemplo x=3 y y=3.0, x is y va a decir False, porque aunque son iguales, no son la misma cosa.

x = 3
y = 3.0
print(x is y) # False
# pero
x = y = 3
print(x is y) # True

Concepto crítico

No uses el operador is para comprobar equivalencia, por ejemplo:

x = 3
print(x is 3)

En su lugar, utiliza el operador ==:

x = 3
print(x == 3)

Utiliza la última celda para realizar algunas operaciones sencillas, utiliza otros operadores, revisa la sección de operadores.