Variables – Parte 3

14 11 2009

En esta parte me enfocaré a lo que se conoce como «Tipado dinámico» de las variables, ya que Python es un lenguaje de «Tipado Dinámico» y además «Fuertemente Tipado», lo que veremos a continuación:

Tipado Dinámico

Esta característica se refiere a que no es necesario declarar el tipo de dato que se almacenan en las variables, como en el caso de otros lenguajes, sino que su tipo se determinará en tiempo de ejecución, de acuerdo al valor que se le asigne, así que es posible que el tipo de la variable cambie de acuerdo al valor que se le asigne, por ejemplo, vemos el siguiente código:

#!/usr/bin/env python
a = 5 # "a" guarda un valor entero
print a, type(a)
a = "hola" # ahora "a" guarda una cadena
print a, type(a)
a = 5.4 # ahora "a" guarda un valor float
print a, type(a)
a = (4+2j) # ahora "a" guarda un valor del tipo complejo
print a, type(a)

Un ejemplo gráfico para que sea más entendible 🙂 :

a = 5

asignamos el valor entero “5” a la variable “a”

a = “hola”

asignamos la cadena “hola” a la variable “a”, que antes apuntaba a un valor entero, el cual al quedar libre es borrado de la memoria.

Como la variable “a” no fue “ declarada” para ser de ningún tipo, osea que no se declaro explícitamente que “a” sea de tipo entero o cadena o real o algún otro tipo, puede guardar el valor que se le asigne, pero eso sí, es un lenguaje fuertemente tipado, es decir que no podemos mezclar diferentes tipos de variables.

Fuertemente Tipado

La característica de «Fuertemente Tipado» se refiere a que una vez que una variable guarda un valor, no se puede tratar a dicho valor como si fuera de otro tipo, es decir no se pueden realizar operaciones entre variables o valores de diferentes tipos, ejemplo: si tenemos una variable que guarda el numero entero 9, no podemos sumarle un valor del tipo cadena como “ 5”, pero en otros lenguajes si es posible ya que las variables cambiarían para adaptarse a la operación deseada, pero esto es más propenso a errores en una programación más extensa, si queremos tener ese comportamiento con nuestras variables en Python, es necesario«mutarlas»explícitamente, ejemplo en código:

#!/usr/bin/env python
a = 9 # valor entero
b = "5" # valor entero
c = a + b # no se puede realizar esta operacion
print c

al detectar esto, Python mostrará un mensaje como este:

Traceback (most recent call last):
File “var3ejem2.py”, line 4, in <module>

c = a + b # no se puede realizar esta operacion

TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’

es decir que la operación “+” no está soportada para actuar con variables del tipo int y str (entero y cadena)

Mutación de variables

Si queremos sumar los valores de dos cadenas o un número con una cadena, ejemplo “5” + “9” o 5 + “9” debemos de convertir la cadena al tipo del número, ya sea entero o real o cualquier otro tipo numérico. Para eso se utilizan las funciones que Python trae, ejemplo:

#!/usr/bin/env python
a = 5 # la variable "a" guarda un valor entero
b = "9" # la variable "b" guarda una cadena
c = a + int(b) # con la funcion int() convertimos
               # la cadena un entero
print c

y así podemos mutar las variables para que se comporten de la manera que queremos, pero ojo, que luego “b” sigue siendo una cadena, si queremos que sea un entero para el resto del código, simplemente la reasignamos con el nuevo valor.

b = int(b)

Anuncios

Acciones

Information

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: