Variables¶
El uso de expresiones que combinen operaciones nos resuelve un cálculo complejo... hasta cierto punto. Si la cosa se complica, hay que dividir el problema en varios pasos y memorizar los resultados parciales. Para ello, necesitamos usar variables
Creando variables¶
Una variable es un dato almacenado en la memoria RAM, al que asignamos un nombre. Por ejemplo:
| Variables.py | |
|---|---|
1 2 3 4 5 6 | |
Lo que, al ejecutarse, muestra:
5 10 100
Veamos otro ejemplo más práctico:
| CalculoCirculo.py | |
|---|---|
1 2 3 4 5 6 | |
Al ejecutar eso, se muestra:
5 31.4159 78.53975
y cambiando la primera sentencia, podemos calcular circunferencias de diferente tamaño.
¿Que es una variable?¶
Cuando escribimos:
radio = 5
pi = 3.14159
los valores indicados se almacenan en la memoria RAM de nuestra computadora, junto a las instrucciones del programa, y se les asigna un nombre. Una variable es un dato con nombre.
Una vez creadas, podemos usar las variables en otras sentencias del programa:
print(radio)
lo que, en este ejemplo, equivale a:
print(5)
Nombres de variables¶
Una variable puede tener un nombre corto, o uno más descriptivo:
x = 0
radio = 5
En general, conviene usar nombres descriptivos, pero para pequeños programas,
son aceptables nombres como a , b , c o como x, y, z
Asignaciones¶
El símbolo = se denomina operador de asignación, y sirve para asignar
un valor a una variable. La sintaxis en general es:
variable = valor
A una variable le podemos asignar el valor de otra:
dato1 = 5
dato2 = dato1
... con lo que tendremos dos variables cuyo valor es el mismo.
También podemos asignarle el resultado de un cálculo:
perimetro = radio * pi * 2
En una asignación, siempre se evalúa en primer lugar lo que hay a la derecha
del operador =, y seguidamente, se asigna el resultado a la
variable.
¿Por que se llaman variables?¶
Una variable puede cambiar de valor durante la ejecución del programa. Por ejemplo:
numero = 0
numero = 1
print(numero)
Al llegar a la tercera sentencia, el valor a mostrar es 1. En la segunda sentencia, el valor de la variable cambia, y el dato anterior se pierde.
Incremento¶
Una variable puede incrementar (o decrementar) su valor mediante
| Incremento.py | |
|---|---|
1 2 3 4 | |
En la tercera sentencia tomamos el valor de la variable, le sumamos el incremento, y el resultado se asigna a la misma variable, sustituyendo el valor anterior. La cuarta sentencia muestra el valor original incrementado en 5.
Asignaciones compuestas¶
Supongamos una variable x que usamos para llevar la cuenta de algo. De cuando en cuando hay que sumarle 1:
x = 0 # valor inicial de la cuenta
x = x + 1 # x vale 1
x = x + 1 # x vale 2
x = x + 1 # x vale 3
cada vez que le sumemos 1, la variable irá incrementando su valor.
Hay una forma abreviada de escribir esto:
x += n equivale a x = x + n
x -= n equivale a x = x - n
x *= n equivale a x = x * n
x /= n equivale a x = x / n
... considerando que n puede ser un número cualquiera. Por ejemplo, en un programa donde hagamos una cuenta atrás, para decrementar la variable de control podemos escribir:
x = 10
x -= 1
x -= 1
y así sucesivamente, hasta que la variable valga cero.
Asignaciones múltiples¶
En una única sentencia podemos hacer varias asignaciones:
numero1, numero2 = 0, 1
A la izquierda del operador de asignación ponemos la lista de variables donde vamos a guardar los datos. A la derecha, una lista de valores o de expresiones a evaluar. Las variables de la izquierda deben ir separadas por comas, y las expresiones de la derecha, también.
En la práctica, resulta más limpio y claro escribir cada asignación en una sentencia por separado. No obstante, este mecanismo tiene algunas ventajas. Por ejemplo, sirve para intercambiar los valores de dos variables:
| Intercambio.py | |
|---|---|
1 2 3 4 | |
Lo que, al ejecutarse, muestra:
2025 2013
¿Como se resuelve una asignación múltiple? En la tercera sentencia de este ejemplo:
año1, año2 = año2 , año1
-
primero resolvemos lo que hay a la derecha del operador
=. Obtenemos un paquete de datos con los valores deaño2yaño1, en ese orden, es decir, 2025 y 2013 -
con el operador
=se desempaquetan los resultados y se van asignando a las variables que hay a la izquierda - el paquete de datos provisional, se borra de la memoria una vez completada la operación.
Asignaciones encadenadas¶
En una asignación, primero se resuelve lo que hay a la derecha del operador =.
Esto nos permite escribir:
| Asignaciones_encadenadas.py | |
|---|---|
1 2 | |
Lo que equivale a
c = 27
b = c
a = b
print(a,b,c)
Error en el nombre de una variable¶
Cuando asignamos un valor a una variable, se comprueba si ya existe. En este caso, se modifica. Por el contrario, si la variable no existe, se crea una nueva.
Esto puede dar lugar al siguiente error:
# programa para calculare circunferencias
radio = 27
# varias instrucciones
Radio = 28
# más instrucciones
Tenemos un programa con muchas instrucciones, y en algún lugar hemos querido cambiar el valor de la variable. Pero por descuido, la hemos escrito con la letra inicial en mayúsculas. Python no se quejará. Pensará que se trata de una nueva variable y seguirá con la ejecución del programa, que producirá unos resultados que no son los esperados.
Hay que tener mucho cuidado con los nombres de variables.