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:
nombrees 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
25en la variableedad.
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 variablenombrey 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
- Creamos dos variables:
producto ="Ordenador"
precio = 500
- 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:
- ¿Qué ocurre si cambias el valor de
ciudad? - ¿Qué ocurre si cambias el valor de
edad? - ¿Por qué es mejor llamar
comida_favoritaa una variable que llamarla simplementex? - ¿Qué ocurre si intentas utilizar una variable que no has creado?
- ¿Qué ocurre si escribes
Nombrecuando la variable se llamanombre?
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.