Módulo 1 · Lección 1 de 59
Variables: guardar datos
Qué es una variable, cómo se crea, cómo se cambia su valor y qué reglas y costumbres seguir al ponerles nombre.
Para qué sirven#
Un programa sin variables solo puede hacer lo que esté escrito literalmente en el código. Con variables puede guardar un dato, darle un nombre y volver a usarlo tantas veces como haga falta.
precio = 19.99
print(precio)
print(precio * 3)19.99
59.97Sin la variable tendrías que repetir 19.99 en cada sitio, y el día que cambie el precio tendrías que acordarte de cambiarlo en todos. Con la variable lo cambias en un solo sitio.
Cómo se crea#
Nombre, signo igual, valor. No hay que declarar nada ni decir de qué tipo es:
nombre = "Erwin"
edad = 34
altura = 1.78
activo = TrueEl signo = se llama asignación, y se lee de derecha a izquierda: "calcula lo de la derecha y guárdalo en el nombre de la izquierda".
Cambiar el valor#
Una variable, como su nombre indica, varía. Al asignarle un valor nuevo, el anterior se pierde:
contador = 0
print(contador)
contador = 5
print(contador)
contador = contador + 1
print(contador)0
5
6La última línea merece atención: primero Python calcula contador + 1, que da 6, y después guarda ese 6 en contador. Es tan frecuente que existe un atajo:
contador += 1 # exactamente lo mismo que contador = contador + 1Los mismos atajos existen para las demás operaciones: -=, *=, /=.
Una variable puede cambiar de tipo#
Python no te ata: la misma variable puede guardar hoy un número y luego un texto.
dato = 42
print(dato)
dato = "cuarenta y dos"
print(dato)Es cómodo, pero no lo hagas a propósito. Una variable que a veces es número y a veces texto es una fuente segura de errores. Si el contenido cambia de naturaleza, usa otro nombre.
Reglas para los nombres#
Estas son obligatorias; si las incumples, el programa no arranca:
- Solo letras, números y guion bajo.
- No puede empezar por un número.
1precioes inválido,precio1es válido. - No puede llevar espacios ni guiones normales.
precio totalyprecio-totalno funcionan. - Distingue mayúsculas:
edad,EdadyEDADson tres variables distintas. - No puede ser una palabra reservada del lenguaje, como
if,for,class,def,Trueoimport.
edad_usuario = 30 # válido
_temporal = "algo" # válido
precio2 = 9.99 # válido
2precio = 5 # SyntaxError
precio total = 5 # SyntaxError
class = "Primera" # SyntaxError, class es una palabra reservadaCostumbres para los nombres#
Estas no son obligatorias, pero las sigue todo el mundo y hacen tu código legible:
| Costumbre | Bien | Mal |
|---|---|---|
| Todo en minúsculas, palabras separadas por guion bajo | precio_total | PrecioTotal, preciototal |
| Que diga qué contiene | edad_usuario | x, dato, cosa |
| En singular si es un dato, en plural si son varios | alumno, alumnos | alumnoLista |
| En español o en inglés, pero no mezclado | total_precio o total_price | total_price_final_es |
Varias asignaciones en una línea#
Python permite dos atajos que verás a menudo:
x, y = 10, 20 # x vale 10 e y vale 20
a = b = 0 # las dos valen 0
x, y = y, x # intercambia los valores: x vale 20 e y vale 10Ese último es un truco muy útil de Python: en otros lenguajes intercambiar dos valores necesita una variable auxiliar.