En Python, una variable es un nombre simbólico que te permite referenciar un objeto concreto almacenado en la memoria de tu computadora.
En Python, las variables no almacenan objetos concretos. Las variables son como etiquetas que puedes asociar con un valor determinado en la memoria de tu computadora para luego acceder al valor empleando un nombre descriptivo.
Python utiliza asignación basada en referencias, donde las variables son nombres que apuntan a objetos en la memoria.
Variables en Python
Para crear una variable en Python, se emplea el operador de asignación (=
) como se muestra a continuación:
>>> number = 42
>>> temperature = 76.7
>>> language = "Python"
>>> message = "Bienvenidos a pythonscouts.com"
En estos ejemplos, has creado algunas variables mediante la asignación de valores numéricos o de cadena de caracteres.
A partir de este momento, puedes usar el nombre de estas variables cuando quieras referirte al valor asignado en tu código:
>>> number
42
>>> temperature
76.7
>>> language
'Python'
>>> message
'Bienvenidos a pythonscouts.com'
Puedes usar las variables para referirte a los valores que estas referencian. Estos valores se encuentran almacenados en posiciones específicas de la memoria de tu computadora. La variable solo es una vía para llegar al valor referenciado.
Durante la ejecución de tu código, tus variables pueden variar el valor referenciado. Es por eso que las llamamos variables. Por ejemplo, el siguiente contador incrementa su valor de uno en uno durante la ejecución del código:
>>> count = 0
>>> count += 1
>>> count
1
>>> count += 1
>>> count
2
>>> count += 1
>>> count
3
Para cambiar el valor referenciado por una variable, lo que hacemos es reasignar la variable para que apunte a otro valor u objeto.
Tipos de datos y variables
Python es un lenguaje de tipado dinámico, lo que significa que el tipo de objeto al que una variable hace referencia puede cambiar durante la ejecución del programa.
En realidad, las variables en Python no tienen tipo de dato. Los que tienen tipo de dato asociado son los objetos a los que las variables se refieren o apuntan.
Debido a esto, una variable en Python puede referirse a una cadena en un momento determinado, a un valor numérico en otro momento, y a cualquier otro objeto más tarde:
>>> value = 42
>>> value
42
>>> # Más tarde...
>>> value = "Una cadena"
>>> value
'Una cadena'
Aunque esto es posible hacer que una variable se refiera a objetos de diferentes tipos de dato en diferentes momentos de su vida, esta práctica no es recomendable pues puede ocasionar errores durante la ejecución del código:
>>> value.upper()
'UNA CADENA'
En este ejemplo, puedes ver cómo inicialmente la variable referencia un objeto de tipo cadena al cual le puedes aplicar el método .upper()
para convertir todas las letras en mayúsculas.
Ahora supongamos que un rato más tarde, el código reasigna la variable para referirse a un valor numérico entero. Cuando tratas de aplicar el método .upper()
, recibes una excepción AttributeError
:
>>> value = 42
>>> value.upper()
Traceback (most recent call last):
...
AttributeError: 'int' object has no attribute 'upper'
Los enteros no implementan el método .upper()
y esto provoca que tu código falle. Debido a problemas como este, es recomendable que tus variables no cambien el tipo de objetos al que apuntan durante su vida.
Nombres de variables
Los nombres de variables en Python pueden tener cualquier longitud y consistir en letras mayúsculas (A-Z) y minúsculas (a-z), dígitos (0-9) y el carácter de guión bajo (_). La única restricción es que, aunque un nombre de variable puede contener dígitos, el primer carácter de un nombre de variable no puede ser un dígito.
La guía de estilo de programación de Python, el PEP 8, recomienda que escribas los nombres de variables en minúsculas con guiones bajos para separar las palabras:
>>> name = "Juan"
>>> family_name = "Valdés"
>>> age = 19
>>> birth_day = "02-10-2008"
Las variables identifican objetos y, por esta razón, generalmente se emplean sustantivos para los nombres de variables.
En el caso de nombres que requieren más de una palabra, se emplea un guión bajo para separar las palabras. En este caso, es común emplear un adjetivo junto con un sustantivo.
Las variables que apuntan a valores Booleanos (True
o False
) generalmente usan los prefijos is_*
y has_*
en inglés:
>>> is_active = True
>>> has_permission = False
El uso de estos prefijos es una convención de estilo que ayuda a mejorar la legibilidad del código. No es un requisito estricto del lenguaje.
Conclusiones
Has aprendido cómo funcionan las variables en Python, incluyendo su creación, asignación y uso. También has explorado el concepto de tipado dinámico y cómo gestionar los nombres de variables según las convenciones más empleadas en Python.
Comprender las variables es esencial para cualquier desarrollador de Python, pues ellas son fundamentales para manipular y gestionar datos en tus programas.
Con estas habilidades, estás preparado para explorar conceptos más avanzados y desarrollar aplicaciones más complejas.