Saltar al contenido principal

Variables y datos

Hasta ahora hemos visto qué significa programar y cómo podemos utilizar Python para darle instrucciones a un ordenador.

Pero un programa no solo necesita ejecutar instrucciones. También necesita trabajar con información.

Un programa puede necesitar recordar el nombre de una persona, guardar una edad, almacenar una ciudad o conservar cualquier otro dato para utilizarlo más adelante.

Para hacer esto utilizamos las variables.


¿Por qué necesitamos variables?

Imagina que queremos crear un programa que muestre información sobre una persona:

Eric
30 años
Valencia

Esa información debe ser guardada en algún sitio para que el programa pueda usarla, ya que ¿qué ocurre si queremos utilizar el nombre varias veces? ¿O si más adelante queremos cambiar la ciudad?

Necesitamos alguna forma de guardar esa información y poder utilizarla cuando la necesitemos.

Para ello, podemos asociar un nombre a cada dato:

nombre → Eric
edad → 30
ciudad → Valencia

De esta forma sabemos que nombre hace referencia a "Eric", que edad hace referencia a 30 y que ciudad hace referencia a "Valencia".

En programación haremos algo parecido mediante las variables.

Una variable es un nombre que utilizamos para guardar y trabajar con un valor dentro de un programa.


¿Qué es una variable?

Una forma sencilla de imaginar una variable es pensar en una caja con una etiqueta.

Imagina que tenemos una caja en la que guardamos el nombre de una persona:

┌─────────────┐
│ nombre │
├─────────────┤
│ Maria │
└─────────────┘

La etiqueta nombre nos permite saber qué información estamos guardando.

En Python haremos algo parecido:

nombre = "Maria"

El ejemplo de las cajas es solamente una forma de representar la idea. No significa que Python utilice literalmente cajas para guardar las variables. Lo importante es entender que una variable nos proporciona un nombre con el que podemos hacer referencia a un valor.

Además, el valor de una variable puede cambiar durante la ejecución del programa. Esto lo veremos más adelante.


Crear una variable en Python

Para crear una variable utilizamos una asignación.

Por ejemplo:

nombre = "María"

donde:

  • nombre es el nombre de la variable.
  • = indica que queremos asignar un valor.
  • "María" es el valor que estamos guardando.

La sintaxis base es siempre variable = valor.

¿Qué significa =?

Es importante entender desde el principio que el signo = en una asignación no significa que estemos comprobando una igualdad matemática.

Cuando escribimos:

edad = 25

estamos diciendo:

Guarda el valor 25 en la variable edad.


Utilizar una variable

Una vez que hemos creado una variable, podemos utilizarla en otras instrucciones. De momento conocemos la instrucción print(), que nos permite mostrar un mensaje por pantalla.

Por ejemplo:

nombre = "María"

print(nombre)
  • nombre = "María" crea la variable nombre y guardamos "María" en ella.

  • print(nombre) muestra el nombre por pantalla.

Python utiliza el valor que tenemos guardado en esa variable y muestra:

María

¡Pruébalo con tu nombre!

La ventaja de usar variables es que no tenemos que escribir "María" directamente cada vez que queramos utilizar ese dato. Simplemente haremos uso del nombre de la variable que lo guarda.

Por ejemplo:

nombre = "María"

print(nombre)
print(nombre)

El programa muestra:

María
María

Hemos utilizado la misma variable dos veces.

Esto resulta especialmente útil cuando un dato aparece en diferentes partes de un programa.

Por ejemplo, si decidimos cambiar el nombre "María" por "Laura", solo tenemos que cambiar el valor de la variable:

nombre = "Laura"

print(nombre)
print(nombre)

y el programa mostraría:

Laura
Laura

Las instrucciones siguen siendo las mismas. Lo que ha cambiado es el valor que contiene la variable.


Cambiar el valor de una variable

Una variable no tiene por qué mantener siempre el mismo valor.

Podemos sobreescribir su valor a mitad programa.

Por ejemplo:

nombre = "María"

print(nombre)

nombre = "Laura"

print(nombre)

Como sabes el programa se ejecuta en orden de arriba a abajo, por lo que el resultado que veríamos en pantalla sería:

María
Laura

¿Qué ha ocurrido?

Primero hemos creado nombre con el valor "María" y lo hemos mostrado con el print(nombre).

Después hemos sobreescrito nombre asignándole un nuevo valor nombre = "Laura". Por eso, cuando utilizamos la variable en el segundo print(nombre) Python utiliza el nuevo valor de Laura.

Cuando volvemos a asignarle un valor a una variable que ya existía ("Laura"), Python olvida el valor que tenía anteriormente ("María"), de forma que a partir de esa instrucción la variable se queda con el nuevo valor ("Laura").


Elegir buenos nombres para las variables

Podríamos llamar a una variable de cualquier manera, siempre que el nombre sea válido en Python.

Por ejemplo:

x = 25

Este código funciona.

Sin embargo, cuando volvamos a leerlo más adelante, puede ser difícil saber qué representa x.

Es mucho más claro escribir:

edad = 25

Por eso es importante utilizar nombres descriptivos.

Por ejemplo:

nombre = "Alba"
edad = 25
ciudad = "Sevilla"
comida_favorita = "pizza"

Estos nombres nos permiten entender rápidamente qué información contiene cada variable.

NOTA: por el momento no vamos a entrar en por qué algunos valores se almacenan entre comillas y otros no. Lo veremos en la siguiente lección "Tipos de datos básicos".


Reglas básicas para los nombres

Los nombres de variables tienen algunas reglas que debemos respetar.

1. No pueden comenzar por un número

Esto no es válido:

2edad = 25

Podemos utilizar números dentro del nombre, pero no al principio:

edad2 = 25

2. No pueden contener espacios

Esto no es válido:

nombre completo = "María"

Si queremos utilizar varias palabras, podemos separarlas mediante _:

nombre_completo = "María"

Esta forma de escribir nombres se conoce como snake_case.

Es habitual utilizarla en Python:

nombre_usuario = "María"
edad_usuario = 25
ciudad_origen = "Valencia"

Podemos combinar letras, números y _

Por ejemplo:

nombre2 = "Laura"
edad_actual = 25
usuario_1 = "María"

3. Python diferencia entre mayúsculas y minúsculas

Para Python, estos nombres de variables son diferentes:

nombre
Nombre
NOMBRE

Por ejemplo:

nombre = "María"

print(nombre)

funciona, pero:

nombre = "María"

print(Nombre)

no funciona, ya que no utiliza la misma variable. Aunque nosotros podamos considerar que nombre y Nombre representan lo mismo, Python los trata como nombres diferentes.

4. Palabras reservadas

Python también tiene algunas palabras que están reservadas para determinadas funciones del lenguaje.

Por ejemplo, palabras como print tienen un significado especial en Python y no debemos utilizarlas como nombres de variables.

No es necesario memorizar ahora todas las palabras reservadas. Lo importante es saber que existen y que algunas palabras están reservadas por el lenguaje. En este curso veremos otras palabras reservadas como int, if, while, for, input, etc.


Un ejemplo completo

Vamos a juntar lo que hemos aprendido en un pequeño programa.

Queremos guardar algunos datos sobre un producto y después mostrarlos por pantalla.

producto → "Ordenador"
precio → 500
  1. Creamos dos variables:
producto ="Ordenador"
precio = 500
  1. Utilizamos esas variables:
print(producto)
print(precio)

Python utiliza el valor almacenado en cada variable y muestra:

Ordenador
500

Errores habituales

Cuando empezamos a trabajar con variables es normal cometer algunos errores.

Utilizar una variable que no existe

Para utilizar una variable primero tenemos que haberla creado.

Por ejemplo:

print(nombre)

Si antes no hemos creado nombre = algo, Python no sabe a qué información nos estamos refiriendo.

En cambio, esto sí funciona:

nombre = "María"

print(nombre)

Primero creamos la variable y después la utilizamos.

Por eso, cuando aparezca un error relacionado con una variable que no existe, una de las primeras cosas que debemos comprobar es si hemos creado esa variable antes de utilizarla.


Escribir mal el nombre

Recuerda que Python tiene unas reglas para escribir los nombres de las variables:

  • No puede empezar por número.
  • No puede contener espacios.
  • Distingue entre mayúsculas y minúsuclas.
  • No puedes utilizar palabras reservadas.

Mini reto: tu información

Ahora vamos a crear un pequeño programa utilizando variables.

Enunciado

Crea un programa que guarde en variables:

  • tu nombre completo;
  • tu ciudad;
  • tu edad;
  • tu comida favorita.

Después, muestra toda esa información por pantalla.

Después de crear el programa, prueba a modificar algunos valores y ejecútalo varias veces con valores diferentes.

Para pensar

Una vez que funcione, responde a estas preguntas:

  1. ¿Qué ocurre si cambias el valor de ciudad?
  2. ¿Qué ocurre si cambias el valor de edad?
  3. ¿Por qué es mejor llamar comida_favorita a una variable que llamarla simplemente x?
  4. ¿Qué ocurre si intentas utilizar una variable que no has creado?
  5. ¿Qué ocurre si escribes Nombre cuando la variable se llama nombre?

El objetivo no es solamente que el programa funcione. Intenta entender qué información guarda cada variable y cómo Python utiliza esa información.


Qué debes recordar

Quédate con estas ideas:

  • Una variable permite guardar y trabajar con un valor dentro de un programa.
  • Para crear una variable utilizamos una asignación:
nombre = "María"
  • Podemos utilizar una variable después de haberla creado:
print(nombre)
  • Podemos cambiar su valor mediante una nueva asignación:
nombre = "Laura"
  • Es recomendable utilizar nombres claros y descriptivos.
  • Si utilizamos una variable que no hemos creado, Python no puede saber a qué información nos referimos.

Las variables serán una pieza fundamental del resto del curso. A partir de ahora podremos utilizarlas para guardar la información con la que trabajen nuestros programas.