Avisar de contenido inadecuado

Python: Variables y asignaciones.

{
}

Ya hemos utilizado variables en el articulo anterior, su uso es simple y no dista mucho de cualquier otro lenguaje de programación.

Las variables son útiles para poder guardar información que más tarde necesitaremos. En ellas se puede guardar prácticamente cualquier cosa (números, caracteres, strings, listas, conjuntos, etc).

En python no hace falta declarar explícitamente las variables antes de su uso, estas se crean en el momento en el que les asignamos un valor y se destruyen automáticamente al salir de su ámbito (En este punto explicar que es el ámbito de las variables sin hacer mención a cosas que aún no conocemos se me hace difícil, así que lo dejaremos para los capítulos siguientes, de todas formas y para hacer boca, hablamos de ámbito para indicar el espacio en el que la variable es visible o dicho de otra forma, se puede utilizar, no os preocupéis es algo que ya veremos).

Al asignarle un valor a una variable, esta automáticamente coge el valor y el tipo del dato que le hayamos pasado. Esto es lo que se conoce como “tipado dinamico”

banyut@hades:~$ python

Python 2.5.2 (r252:60911, Apr 21 2008, 11:12:42)

[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> a=3

>>> type(a)

<type 'int'>

>>> a=3.0

>>> type(a)

<type 'float'>

>>> a='c'

>>> type(a)

<type 'str'>

Después de la última asignación de la variable a, esta es del tipo carácter, por lo que la variable solo puede operar con los operadores aritméticos que le corresponden, tal y como vimos en el capitulo anterior.

>>> a = a + 1

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: cannot concatenate 'str' and 'int' objects

>>> a= a + '1'

>>> print a

'c1'

A tener muy en cuenta es que en python no se permite hacer referencia a una variable a la que nunca se le haya asignado un valor.

>>> print b

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

NameError: name 'b' is not defined

>>> b="ya tengo valor"

>>> print b

ya tengo valor

A todos nos tiene que haber quedado claro que el operador de asignación es el signo '=' que no hay que confundir con '=='.

El nombre de una variable, ha de empezar por una letra o por el carácter guión bajo, seguido de letras, números o guiones bajos, teniendo en cuenta que solo se permiten los caracteres del alfabeto inglés, así que olvidaros de la 'ñ' o la 'ç'. De igual manera, tampoco se puede usar como variables ninguna de las siguientes 31 palabras que python tiene reservadas.

And del from not while as elif

global or with assert else if pass

yield break except import print class exec

in raise continue finally is return def

for lambda try

Phyton distingue entre mayúsculas y minúsculas, así la variable 'A' es diferente de la variable 'a'.

>>> nom="Juan"

>>> Nom="Pedro"

>>> print nom, Nom

Juan Pedro

Ya hemos visto que la asignación de una variable se realiza mediante el signo igual '='.

>>> nombre = "pepe"

>>> un_vector = (3,5,6)

>>> una_lista = [3,5,6]

>>> dias_semana = ['Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes']

>>> un_entero = 3

>>> un_float = 3.0

>>> un_complejo = 3 + 4j

>>> otro_float = un_entero + un_float

>>> un_boolean = True

>>> otro_boolean = un_boolean == False

Si no tenéis mucha experiencia en programación puede que la última asignación os desoriente un poco, pero no os preocupéis mucho, dentro de poco veréis como la entendéis a la perfección.

Vemos que a una variable le podemos asignar.

  • Un valor a = 3

  • El valor de otra variable b = a, ahora b = 3

  • El resultado de una operación c = 3 + 2, ahora c = 5.

Python nos permite asignaciones múltiples.

>>> ciudad = municipio = "Tarragona"

>>> ciudad

'Tarragona'

>>> municipio

'Tarragona'

A la variable ciudad y a la variable municipio, les asignamos la cadena “Tarragona”. Tambien podemos asignar valores diferentes en las asignaciones múltiples.

>>> anyo, mes, dia, hermanos = 1966, "decembre", 13, ["Juan","Roser","Maria"]

La primera variable (anyo), cogerá el primer valor (1966), la segunda variable el segundo valor, etc.

Veamos otra posibilidad, crearemos un vector al que le asignaremos los números del 1 al 5.

>>> v = (1, 2, 3, 4 5)

>>> v

(1, 2, 3, 4 5)

Ahora cada uno de esos valores los asignaremos a una variable diferente.

>>> lunes, martes, miercoles, jueves, viernes = v

Lunes coge el valor de 1, martes 2, miercoles 3, etc. Otra manera de hacerlo.

>>> v = range(1,6)

>>> v

[1, 2, 3, 4, 5]

>>> lunes, martes, miercoles, jueves, viernes = v

>>> jueves

4

>>>

Este tipo de asignaciones es especialmente útil cuando necesitamos que una función nos devuelva más de un resultado (función?? ya lo veremos más adelante). En este punto también se ha introducido la función range(), de momento lo único que hemos de saber es que esta función nos devuelve una lista de enteros que puede variar según los parámetros que le pasemos, en su forma más sencilla se le pasara un único parámetro que sera su limite superior, devolviendo una lista ordenada que ira de 0 a limite-1.

En el capitulo pasado vimos las operaciones aritméticas, en este hemos dicho que el resultado de una operación se puede asignar a una variable, veamos como se realiza todo esto.

>>> a = 1

>>> a = a + 1

>>> a

2

>>> a += 1

>>> a

3

Las lineas 2 y 5 realizan la misma operación. El operador de la linea 5 '+=' se utiliza cuando operamos sobre la misma variable a la que vamos a asignar, es lo mismo que decir a la variable a le sumamos 1. Este tipo de operación se puede realizar con prácticamente todos los operadores aritméticos.

>>> a = 2

>>> a *= 10

>>> a /= 2

>>> a **= a

>>> a

10000000000L

Nos tiene que quedar claro cual es el tipo de devolverá la operación que realicemos, si es una comparación nos devolverá, True o False, si la operación es con cadenas de texto posiblemente nos devuelva una cadena de texto, etc. Así que a la hora de asignar a una variable el resultado de una operación hemos de tener en cuenta que tipo de dato devolverá.

>>> nombre = "Juan"

>>> mida = len(nombre)

>>> nombre_largo = mida > 6

>>> nombre

'Juan'

>>> mida

4

>>> nombre_largo

False

En ocasiones la asignación de una variable, sobre todo si se trata de listas o tuplas, puede ocasionar una sentencia tan larga que nos sea difícil de leer, en este caso podemos dividir la asignación en varias lineas, esto se consigue añadiendo al final de la linea el carácter '\'.

>>> meses = ['enero', 'febrero', 'marzo', \

... 'abril', 'mayo', 'junio', \

... 'julio', 'agosto', 'setiembre', \

... 'octubre', 'noviembre', 'diciembre']

>>> meses[3]

'abril'

>>> meses[10]

'noviembre'

>>>

Algunas Recomendaciones.

Dejaremos siempre un espacio a cada lado de:

  • Asignación: a = a + 1

  • Asignación aumentada (+=, *=, -=, etc): a += 1

  • Comparaciones (==, <, >, !=, <=, >=, not, in, not in, etc): a == 3

  • Operadores aritméticos: c = (a + b) * (c + d)

 

{
}
{
}

Comentarios Python: Variables y asignaciones.

Hola,
¿No hay un comando en el interprete de python que muestre las variables que se han definido a lo largo de una sesión?
Gracias
fernando fernando 06/11/2009 a las 18:51
Hola, Fernando!

si escribes dir() , obtendrás la lista de objetos definidos en la sesión (o importados desde otros módulos).

Saludos 
ifanlo ifanlo 23/01/2010 a las 12:43
Me puedes decir en orden todos los articulos sobre python.
Pablo Pablo 25/12/2012 a las 08:55
me gusto, gracias
Karla Karla 21/04/2013 a las 07:45
No sean tan majunches!!!
carlos a. carlos a. 21/01/2014 a las 20:15

Deja tu comentario Python: Variables y asignaciones.

Identifícate en OboLog, o crea tu blog gratis si aún no estás registrado.

Avatar de usuario Tu nombre