Variables – Parte 2

10 11 2009

 

Ya vimos los tipos básicos de datos en Python, los cuales hemos llamado «variables», pero en realidad ese no es el nombre correcto en Python, lo correcto es « nombres» o «etiquetas»; pero, para no salir de la terminología común, la cual es entendida por todo el mundo, vamos a seguir llamándolos «variables», pero debemos tener en cuenta:

Los otros lenguajes (la mayoría) tienen «variables», a las que se les asigna valores, por ejemplo:

Declaración de variables en Java o C#:

int a = 5;

Declaración de variables en Basic:

Dim a as Integer= 5

y así cada lenguaje tiene su manera de declarar variables…

 

¿Qué quiere decir esto?

Que al momento de declarar una variable, se crea un espacio en la memoria que se comporta como una caja, en donde se almacenan los valores asignados.

 

Al declarar la variable “a” se tiene:

int a = 5;

 

 

Si le asignamos otro valor a la variable “a”, el valor anterior es sobrescrito, por ejemplo

a = 8;

 

Si declaramos otra variable “b”, y le asignamos el valor de “a”, esto crea una copia del contenido de “a” en “b”.

int b = a;

Luego, el valor de “b” es independiente al valor de “a”.

 

En Python se usan “nombres” o “etiquetas”

 

Como en Python «todo es un objeto», este comportamiento es algo diferente, Python tiene «nombres» o «etiquetas».

Al hacer:

a = 5, estamos etiquetando al objeto entero “5” con “a”

 

Si asignamos un nuevo valor a “a”, por ejemplo:

a = 8, estamos colocando la etiqueta “a” a un nuevo objeto.

Y el objeto 5 queda libre, puede seguir existiendo en la memoria, pero como nadie hace referencia a él, es borrado.

Si creamos una nueva etiqueta “b” y le asignamos el valor de “a”, osea:

b = a, estamos agregando otra etiqueta al mismo objeto al que “a” hace referencia.

 

Esto significa eficiencia en el uso de memoria, pero si cambiamos el valor de “a”, por ejemplo hacemos una operación aritmética, como restarle 1

a = a – 1

al hacer esto se está creando un nuevo objeto y se etiqueta con “a”, entonces tendremos dos objetos diferentes con etiquetas independientes.

 

Espero que no haya dudas sobre como Python maneja las “etiquetas”, pero para evitarnos complicaciones más adelante, sigamos llamándolas «variables» :-).

Dale una revisada al siguiente código:

a = 5 # se etiqueta el objeto entero 5 con "a"

print a # muestra el objeto de "a"

a = 8 # se etiqueta otro objeto con "a"

b = a # se agrega la etiqueta "b" al objeto de "a"

print b # se muestra el objeto de "b"

a = a – 1 # se modifica el valor del objeto de "a"

print a # se muestra el objeto de "a"

print b # se muestra el objeto de "b", que ahora es independiente

El mismo código con una «traducción más común» de los comentarios:

a = 5 # se crea la variable entera "a" y se guarda el valor "5"

print a # muestra el valor de "a"

a = 8 # se guarda un nuevo valor en "a"

b = a # se crea la variable "b" donde guarda el valor de "a"

print b # se muestra el valor de "b"

a = a – 1 # se modifica el valor de "a"

print a # se muestra el valor de "a"

print b # se muestra el valor de "b"


Acciones

Information

7 responses

10 11 2009
Cesar Luis

Tambien puedes cambiar de tipo de variables
a = 10;
a = «string»;
a = 10.50

o eso era para la parte tercera?

10 11 2009
Carlos Joel

Si, tienes razón, entonces voy a hacer una parte 3 sobre el tipado dinámico de las variables (etiquetas). 🙂

10 11 2009
Edith

Hola Carlitos, ummm interesante que ahora estes interesado en este lenguaje de programacion que por lo que lei se parece al Java , pero me da la curiosidad de preguntar porque lo estas utiizando mas….que le viste?
De todos modos me agrada mucho que ya tengas tu blog y mucho mas que expliques que una forma muy entendible……chvr hasta yo la capte…jejej si deseas eliminar este comentario despues de leerlo, y bueno cuidate mucho oyeeeeeee cinco anios is too much!!!!

12 11 2009
alleinerwolf

Eso de no conocer las variables nos puede llevar a cometer errores sutiles :), por ejemplo el rango soportado por una variable numerica….
Buena…Concuerdo con Cesar Luis, falta hablar del tipado dinamico …

13 11 2009
Carlos Joel

Así es Alex, si chequeas la parte 1 de variables https://pycj.wordpress.com/2009/11/03/variables-en-python/ verás que ahí están los rangos que soportan las variables numéricas en Python, dependiendo de la arquitectura de tu PC, si es de 32bits o de 64bits.
Espero escribir estos días la parte 3 de variables: lo referente a tipado dinámico.

28 12 2009
Malev

Muy buen articulo. Felicidades!
Me aclaraste algunos puntos interesantes.
Saludos

21 02 2011
jose luis hernandez

que interesante!!! felicidades!!!

Replica a Edith Cancelar la respuesta