Está en la página 1de 71

El intérprete de python o shell

En la primera entrada del Tutorial python desde cero vamos aprender conceptos básicos
de programación: valores, variables, operadores y expresiones.

Lo primero que vamos hacer es aprender a usar el Shell interactivo.

Para abrir el IDLE en Windows vamos a Inicio-Programas-Python2.7-IDLE (Python GUI)


En linux: abrimos la consola del sistema, escribimos python y damos enter. Una vez abierto
el idle vamos a realizar unos simples ejercicios de matemáticas para familiarizarnos un
poco con el lenguaje. El Shell interactivo de python puede funcionar como una
calculadora, para probarlo podemos escribir 3 + 3 y pulsamos la tecla enter para efectuar el
cálculo.

Para sumar usamos el signo de +, para restar el signo de -, para multiplicar usamos el
asterisco * y para dividir usamos la barra diagonal /.

Cuando se utilizan de esta manera: +, -, *, / son llamados operadores, ya que le indican a la


computadora la operación especifica con los números que las rodean.
Numero enteros y Números de punto flotante
En programación y también en matemática, los números 3, 0 ,55 son llamados números
enteros y los números 2.0, 43.5, 5.5 son llamados números decimales. Los números con
punto decimal se denominan números de punto flotante. En matemática 5.0 es 5, pero
para el ordenador en programación el 5 es entero y el 5.0 es decimal.

Probar escribir en el intérprete de python >>> algunas operaciones numéricas:

5+5+5

3*2+5

50-4*2

Estos problemas de matemáticas se llaman expresiones, compuestas por valores (los


números), conectadas por los operadores (los signos matemáticos). Cuando la
computadora resuelve la expresión 10 + 5 y se obtiene 15 se dice que se ha evaluado la
expresión. La evaluación de una expresión se reduce a la expresión de un único valor, igual
que una solución de un problema matemático reduce el problema a un número: la respuesta.
Si escribimos en el Shell interactivo 8 + recibiremos un mensaje de error.

Este error ocurrió porque 8 + no es una expresión. Las expresiones tienen valores que se
ligan por los operadores y el símbolo de + por ejemplo, espera conectar por lo menos dos
cosas en python.

Un error de sintaxis significa que el ordenador no entiende las instrucciones que se dieron
por haberlas escrito incorrectamente. Python siempre dará un mensaje de error al tratar de
hacer algo que no entiende.

Por este motivo, programar no es solo decirle a la computadora que hacer, si no también
saber decirle cómo hacerlo.
Almacenar valores en variables
Es muy útil en programación poder guardar los resultados de las expresiones en algún
lugar. Estos lugares se llaman variables.

Pensemos en las variables como una caja donde podemos almacenar valores. Para asignar
valores a las variables utilizamos el signo = (llamado operador de asignación). Por ejemplo,
para almacenar el valor 15 en una variable llamada “correo”, introducimos correo = 15 en
el shell de python.

Correo = 15

Al pulsar la tecla enter no va a ocurrir nada, a no ser que nos muestre un mensaje de error.
Lo que acabamos de decirle al ordenador es que solo guarde el valor 15 en la variable
“correo”, el Shell quedará nuevamente con los guiones >>> para seguir ingresando código.

Esta instrucción que acabamos de hacer es llamada sentencia de asignación, crea una
variable con el nombre “correo” y almacena el valor 15 en la misma. A diferencia de las
expresiones, las declaraciones son instrucciones que no se evalúan como cualquier valor,
por lo que no hay ningún valor para mostrar en la línea siguiente.
Tenemos que recordar que las variables almacenan valores y no expresiones. Por ejemplo,
si tuviéramos la declaración correo = 10 + 5, entonces la expresión 10 + 5 tendría primero
que ser evaluada a 15 y luego el valor 15 se almacenará en la variable “correo”.

Ahora vamos a probar si hemos creado bien nuestra variable. Si escribimos en el Shell de
python correo = 15 y pulsamos enter, podremos fijarnos escribiendo nuevamente en el
Shell de python >>> correo y pulsamos enter.

Como podemos ver, al escribir la variable, el intérprete nos devuelve su contenido.


Ahora que tenemos nuestra primera variable asignada, podremos jugar un poco con ella.
Podemos escribir en el intérprete: correo + 5 y vamos a obtener el número 20.

Si intentamos utilizar una variable antes de asignarle algún valor, python nos dará
un mensaje de error porque tal variable no existe todavía. También pude dar mensajes de
error si escribimos mal la variable a utilizar.
Podemos cambiar el valor almacenado en una variable mediante la introducción de otra
sentencia de asignación. Por ejemplo, intentemos lo siguiente:

La primera vez que hacemos la suma de correo + 5 nos va a dar 20 porque guardamos el
valor 15 en la variable “correo”. Luego le dijimos a python que la variable correo = 3 y por
lo tanto sumándole 5 nos iba a devolver 8.

Para saber cuál es el valor de la variable en cualquier momento podemos escribir el


nombre de la variable en el Shell de python y apretar enter para que nos devuelva el valor
almacenado en ella. También podemos hacer cosas como:
Usando más de una variable
Vamos a tener que utilizar muchas variables para realizar nuestros programas. Ejemplo:

>>> leche = 10

>>> huevos = 15

Ahora la variable “leche” tiene 10 en su interior y la variable “huevos” tiene 15.

Vamos a crear una variable llamada "canasta" con la suma de las variable anteriores:

>>> leche = 10

>>> huevos = 15

>>> canasta = leche + huevos

25

>>>

El valor de “canastas” es 25 porque cuando sumamos leche que valía 10 + huevos que valía
15, la variable “canasta” guardó el valor 25. ¿Bien fácil no?
Nuestro primer programa - Hola Mundo!!!

El clásico Hola Mundo!!!

En este segundo artículo del Tutorial python desde cero, crearemos nuestro primer
programa en python. ¿Qué vamos hacer? Haremos el clásico programa "Hola Mundo"
porque es una tradición en el mundo de la programación y en Python Diario lo respetamos
:).
El sistema que se va a utilizar a lo largo de todo el tutorial será Linux (ubuntu), pero
cualquier duda que tengan por más que estén trabajando en otro sistema operativo,
agradezco que la escriban al final de la entrada, en los comentarios del blog.
El IDE (entorno de desarrollo integrado) que utilizaremos a lo largo del tutorial
será Geany (que es muy ligero, versátil y fácil de utilizar para los que recién comienzan).
Si utilizas Windows puedes descargarlo de la página oficial:
http://www.geany.org/download/releases

Es hora de echarle mano a nuestro primer programa en python. Para eso


abriremos Geany y nos encontraremos con algo como esto:
Entorno de desarrollo Geany

Nosotros por el momento, nos centraremos en el código (si quieres más información acerca
del uso de Geany puedes fijarte en la documentación oficial).
Geany no es utilizado solo para programar en python, en este entorno de desarrollo se
pueden utilizar muchos lenguajes de programación (C, C++, Perl, PHP, etc), por eso lo
primero que debemos hacer al crear un nuevo archivo en Geany, es especificar en que
lenguaje trabajaremos. Para eso, en la barra de herramientas:
Documento Python

Elegimos: Documento - Establecer tipo de Archivo - Lenguaje de Script - Archivos de


fuentes Python.
Ahora nos queda escribir el código y luego guardar (Control + S) nuestro archivo con
extensión .py .

Código de nuestro primero programa en python

Una vez guardado nuestro programa, podremos ejecutarlo presionando la tecla F5 o en el


botón:

Hola mundo en python


Ya tenemos nuestro programa funcionando, ahora explicaré brevemente el código, pero
no se asusten, en futuros tutoriales explicare en detalle bien su funcionamiento.
La idea era ver los pasos para dejar operativo un código escrito en python.

Código:

1 #!/usr/bin/python

2 # -*- coding: utf-8 -*-

4 print "Hola mundo"

La primera línea arranca con #, y todo lo que arranca con hashtag para python es un
comentario (utilizado para dejar anotaciones entre nuestros códigos para una mejor
comprensión). Toda esta primera línea es utilizada en sistemas Unix para definir la ruta del
interprete.
La segunda línea también arranca como un comentario, y es utilizada en python para
definir la codificación que tendrá nuestro programa que por lo general es utf-8.
Por lo general estas dos primeras líneas siempre van en nuestros códigos python.
Y por útlimo, la tercera línea print "Hola mundo", es la que hace que nuestro programa
imprima en pantalla el mensaje "Hola Mundo".
Bueno, con este pequeño aporte, ya aprendimos a crear y ejecutar nuestro primer
programa en python.
Tipos de datos en Python

Vamos conocer los distintos tipos de datos en python. Recordemos que una variable era
como una caja donde podíamos almacenar valores.
Ejemplo en el interprete de python:
>>>x = 5
>>>a = 5.2
>>>b = "Hola mundo!!!"

Estos valores que almacenan nuestras variables, tienen distintos tipos de datos. En el
ejemplo anterior vimos que la variable x = 5 (5 es de tipo entero), la variable a = 5.2(5.2 es
de tipo Float, cualquier número que tenga dígitos después de un punto decimal) y la
variable b = "Hola mundo!!!" ("Hola mundo!!!" es una cadena, de tipo string).
Antes de comenzar a ver los distintos tipos de datos en python, quería comentarles que
existe una función en python llamada type (tipo) que nos devuelve el tipo de dato del
objeto indicado. Veamos un ejemplo:

Como se ve en el ejemplo, x contiene un int (integer - entero), a contiene un Float(número


decimal) y b contiene un str (String - Cadena).
Distintos tipos de datos en python

Tipo de dato numérico

En python tenemos: números enteros, números decimales (de punto flotante) y números
complejos.
Los números enteros representan todos los números "Enteros" (positivos y
negativos), ejemplo: 1, 0, -5 (Tipo de dato int)
Los números decimales son todos los números que contiene dígitos después de un punto
decimal, ejemplo: 1.0 , -6.5, etc (tipo de dato Float)
También existe los números complejos, que son utilizados generalmente para funciones
matemáticas, ejemplo: 3i + 4j (en el tutorial no serán utilizados los números complejos)

Tipo de dato String o Cadena


En python un String o Cadena es una secuencia (ordenada de izquierda a derecha) de
caracteres. Las cadenas comienzan y terminan con comillas dobles o simples. Declarar una
cadena es simple, ya lo vimos en ejemplos anteriores:

>>> blog = "Mi Diario Python"


En caso de olvidarnos de cerrar o abrir una comilla, python nos devolverá un errorcomo
en el siguiente ejemplo:

En en el ejemplo me he olvidado de cerrar las comillas dobles ("") y python me ha


informado que ha ocurrido un error de sintaxis.
Si nuestra cadena de texto es una cadena larga y tiene saltos de líneas, podemos utilizar
las comillas triples ("""Texto"""), un ejemplo sería:
(La declaración print hace que nuestro texto se imprima en pantalla)

A lo largo del curso iremos viendo distintas funciones que utilizaremos para trabajar con
las cadenas. Un ejemplo de ello es la función len(), que utilizaremos para contar los
caracteres de una cadena, ejemplo:
>>>fruta = "manzana"
>>>len(fruta)
7
o lo mismo sería:
>>>len("manzana")
7
También podemos acceder a los caracteres de una cadena (esto lo realizamos con la
sintaxis []) y como pasa con Java y C, el índice de los caracteres de una cadena comienza
en 0 si accedemos desde la izquierda y en -1 si lo hacemos desde la derecha (último).
Utilizando el ejemplo anterior, mostrare como acceder a cada uno de los caracteres de
"manzana" utilizando los índices:

También podemos acceder a porciones de nuestras cadenas utilizando la sintaxis:


En el ejemplo anterior creamos una variable prueba con una cadena "abcdef".
Mostramos el último valor con el índice -1 ("f"), mostramos el antepenúltimo valor con
el índice -3 ("d"). Luego vimos 3 porciones de la variable: primero desde el inicio hasta el
índice 3 ([:3]), luego desde el índice 2 hasta el 5 ([2:5]) y por último desde el índice 3
hasta el final ([3:]).

El operador in se utiliza para comprobar si uno o más caracteres se encuentran o no en la


cadena. La expresión devolverá un valor boolenao (True o False). Veamos un ejemplo:
Caracteres especiales en las cadenas

La contra barra (\) se utiliza para introducir un caracter especial. Veamos la siguiente
tabla:

\n -- Salto de línea (nueva línea)


\t -- Tabulación horizontal
\\ -- Contra barra
\' -- Comilla simple
\"-- Comilla doble

Veamos algún ejemplo:

La declaración print hace que nuestro texto se imprima en pantalla:


>>> print "Esta es una contra barra (\\)"
Esta es una contra barra (\)

>>> print "Esta es una \t tabulacion horizontal"


Esta es una tabulacion horizontal

>>> print "Esta es una \'simple comilla\'"


Esta es una 'simple comilla'

>>> print "Esta es una \"Doble comilla\""


Esta es una "Doble comilla"

>>> print "Esta es una \nueva linea"


Esta es una
nueva linea
Tipo de dato Boolean (True y False)

El tipo de datos más simple de construir es el tipo Booleano (verdadero y falso). Muy útil
en las expresiones condicionales y cualquier otro lugar que se necesite la verdad o falsedad
de una condición.
Veamos un ejemplo:
Tipo de dato Tupla
Las Tuplas son como un tipo de recipiente que contiene una serie de valores separados por
comas entre paréntesis. Las tuplas son inmutables (es decir, no pueden cambiar su
contenido una vez creadas)

Creando tuplas de ejemplo:

En el primer ejemplo declaramos tupla1 y le asignamos los valores (1, 2, 3, 4). Luego
verificamos que tipo de datos es con el comando type y por último imprimimos en pantalla
con print el contenido de tupla1:
>>> tupla1 = (1, 2, 3, 4)
>>> type(tupla1)
<type 'tuple'>
>>> print tupla1
(1, 2, 3, 4)
En el segundo ejemplo hacemos lo mismo, pero la tupla2 tendrá enteros y cadenas:
>>> tupla2 = (1, "python", 64, "blog")
>>> type(tupla2)
<type 'tuple'>
>>> print tupla2
(1, 'python', 64, 'blog')
También se puede acceder a los elementos de una tupla utilizando los índices como
hicimos con las cadenas (el primer elemento es el índice 0). Vemos algún ejemplo:

Como las cadenas, también podemos acceder a una porción de la tupla, veamos el
siguiente ejemplo:
Tipo de datos Lista
Las listas en python son el caballo de batalla. Al igual que las tuplas, las listas son
contenedores de elementos (pueden contener distintos tipos de datos) separados por comas
y entre corchetes([ ]). Pero a diferencias de las tuplas, las listas pueden ser modificadas.
Crear una lista en python es fácil, veamos el siguiente ejemplo:

Para crear una lista vacía (que muchas veces será necesario), la definimos de la siguiente
manera:

>>> mi_lista = []
>>> print mi_lista
[]
Al igual que las cadenas y las tuplas, podemos acceder a los elementos de una lista por
sus índices. Veamos un ejemplo:
Tipo de datos Diccionario
Un diccionario es un conjunto desordenado de pares clave-valor (cada clave contiene un
valor). Los elementos de un diccionario son indexados por llaves ({}). Ejemplo:
Podemos acceder a los valores de un diccionario con sus claves:
Listas en python

Listas en Python

Las listas son un tipo de colección ordenada y se asemejan mucho o son el equivalente en
otros lenguajes de programación a lo que se conoce como arreglos o vectores.
Esta entrada la hago con el fin de ir completando mi tutorial python (lo aclaro porque en
otras entradas ya he tocado el tema listas).
En python estas listas pueden contener enteros, booleanos, cadenas de texto, flotantes o
inclusive listas. Los elementos de una lista van encerrados entre corchetes ([]) y separados
por comas cada uno de ellos de la siguiente forma:

Ejemplo de nuestra primera lista en python:

lista = [1, “dos”, False, [45, “cien”]]

Como podemos ver, nuestra lista tiene los siguientes elementos: un entero (1), una cadena
de texto (“dos”), un booleano (False) y otra lista con dos elementos (un entero 45 y una
cadena de texto “cien”).
Como acceder a los elementos de una lista

Cada elemento de una lista cuenta con un índice. Este índice comienza con el numero 0
para el elemento numero 1. En nuestra lista (lista) el índice 0 corresponde al elemento (1),
la cadena de texto que contiene la palabra “dos” seria el elemento número dos de la lista
pero contiene el índice 1 y así sucesivamente con los demás elementos de la lista.

Ejemplo para acceder a un elemento de la lista

num = lista[1]

Lo que hicimos en el anterior ejemplo fue asignarle a la variable num el elemento con
índice uno de la lista (lista), en este caso (“dos”), por lo tanto la variable num va a contener
la cadena de texto “dos”.
Ahora, para que nos muestre el contenido de nuestra nueva variable, solo tendremos que
pedirlo con un print:

print num
Ahora, como hacemos para acceder a los elementos de una lista que están dentro de
otra lista?

Ejemplo: quiero acceder al primer elemento de la lista que esta dentro de la lista (lista):

lista = [1, “dos”, False, [45, “cien”]]

El elemento 4 de la lista (lista) es otra lista. Como dije anteriormente, los indices se
empiezan a contar desde el 0, por lo tanto el indice del elemento 4 es el 3. Y como el
elemento 4 también es una lista voy a poder acceder a sus elementos por sus indices, en este
caso al indice 0 porque queremos interactuar con el primer elemento.

num = lista[3][0] #Ahora num vale 45

Cambiar o modificar elementos de una lista:

Lo que haremos sera cambiar el elemento 1 de la lista (lista) original por otro cualquiera.

lista = [1, “dos”, False, [45, “cien”]] #Definimos la lista

lista[1] = 5 #Asociamos el numero 5 al elemento con indice 1 de la lista

num = lista[1] #Le asignamos a la variable num el elemento con indice uno de la lista

print num #Para ver el cambio del nuevo elemento

print lista #Para ver como quedaría la lista con el cambio


Particionar una lista

Python trae cosas muy interesantes en lo que tiene que ver con el manejo de listas.
Por ejemplo, si nosotros queremos ver solo una porción de la lista tendríamos que hacer lo
siguiente:
[inicio:fin]

lista = [1, “dos”, False, [45, “cien”]]

#Por ejemplo, para ver los primeros tres elementos de la lista (lista)

ejemplo = lista[0:3]

print ejemplo

Aqui lo que hacemos es asignarle a ejemplo los primeros 3 elementos de la lista(lista), o


sea, los elementos desde el indice 0 al 3, este ultimo no se incluye.

Si en lugar de ejemplo = lista[0:3] hacemos ejemplo = lista[0:]


Asigna desde el elemento 0 hasta el final de la lista porque no indicamos fin. Lo mismo
seria si no indicamos un inicio: ejemplo = lista[:3], asignamos desde el comienzo.

Si nosotros queremos ver algunos elementos, ejemplo: uno si uno no hacemos lo siguiente:

[inicio:fin:salto]

lista = [1, “dos”, False, [45, “cien”]]

ejemplo = lista[0:3:2] #Con el 2 saltea de uno en uno

print ejemplo
También podemos modificar una fracción de una lista de la siguiente manera:

lista = [1, “dos”, False, [45, “cien”]]

lista[0:2] = [5, "mil"]

Si imprimimos la lista nos queda de la siguiente manera:

5, "mil", False, [45, "cien"]

Como los dos primeros elementos de la lista (lista) son 1 y "dos", se van a modificar por
los elementos que hemos indicado nosotros: 5 y "mil".

También podemos trabajar con indices negativos, muy útiles a la hora de saber nuestro
ultimo elemento de la lista, recorrer una lista de atrás hacia adelante, etc. Por ejemplo:

nombres = ["Diego", "Carlos", "Martin", "Lorena", "Natalia"]

print nombres[-1] #Nos devuelve el ultimo elemento de nuestra lista


Funciones y métodos para trabajar con listas

La función len() cuenta los elementos de una lista, ejemplo:


>>>estudiantes = ["Jose", "Raul", "Marcelo"]
>>>len(estudiantes)
3

Añadir elementos a una lista con el método insert(indice, objeto)

El método insert espera un indice y el valor a agregar, ejemplo:


>>>estudiantes = ["Jose", "Raul", "Marcelo"]
>>>estudiantes.insert(0, "Maria")
>>>print estudiantes
["Maria", "Jose", Raul", "Marcelo"]

Añadir elementos a una lista con el método append(objeto)

>>>estudiantes = ["Jose", "Raul", "Marcelo"]


>>>estudiantes.append("Mariela")
>>>print estudiantes
["Jose", "Raul", "Marcelo", "Mariela"]

Añadir varios elementos a una lista con el método extend(segmento)

>>>estudiantes = ["Jose", "Raul", "Marcelo"]


>>>estudiantes.extend(["Dario", "Natalia"])
>>>print estudiantes
["Jose", "Raul", "Marcelo", "Dario", "Natalia"]

Buscar elementos de una lista con el método index(objeto)

>>>estudiantes = ["Jose", "Raul", "Marcelo"]


>>>estudiantes.index("Raul")
1 #Retorna el índice del elemento "Raul"
Eliminar un elemento de la lista con el método remove(objeto)

>>>estudiantes = ["Jose", "Raul", "Marcelo"]

>>>estudiantes.remove("Raul")

>>>print estudiantes

["Jose", "Marcelo"]

Convertir cadenas en una lista con el método split()


Con el método split() podemos convertir una cadena de caracteres en una lista delimitada
por los índices que indiquemos. Si no se indica nada se utilizan los espacios:

>>>"Hola mi nombre es Diego".split()


["Hola","mi","nombre","es","Diego"]

>>>"1-2-3-4-5-6".split("-")
["1","2","3","4","5","6"]

Buscar y saber si hay elemento duplicados con el método set()

>>>estudiantes = ["Martin", "Jose", "Raul", "Jose"]


>>>estudiantes_unicos = list(set(estudiantes))
>>>print estudiantes_unicos
["Raul", "Jose", "Martin"]
Veamos un ejemplo con una función:

def duplicado(lista):
new_list = list(set(lista))

if len(new_list) != len(lista):
return True #Retorna True si hay duplicados
else:
return False #Retorna False si no hay duplicados

Con el método pop(), podremos eliminar y mostrar el ultimo elemento de la lista, ejemplo:

>>>estudiantes = ["Jose", "Raul", "Marcelo"]

>>>estudiantes.pop()

"Marcelo"

>>>estudiantes

["Jose", "Raul"]

Saber cuantas veces se repite un elemento de una lista con el método count(objeto)

>>>estudiantes = ["Jose", "Raul", "Marcelo", "Raul"]

>>>estudiantes.count("Raul")

Invertir una lista con el método reverse()

>>>estudiantes = ["Jose", "Raul", "Marcelo", "Raul"]

>>>estudiantes.reverse()

>>>print estudiantes

["Raul", "Marcelo", "Raul", "Jose"]


Diccionarios en Python: Propiedades, Operaciones,
Metodos y mas
Todos los tipos de datos que hemos visto hasta el momento en el tutorial Python desde
cero (cadenas, listas, tuplas), son de tipo secuencia y podemos acceder a sus valores a
través de sus índices como vimos en las entradas anteriores.

Diccionarios en Python

El tipo de dato diccionario en python es compuesto. Cada clave está separada de su valor
por dos puntos {:}, sus elementos separados por comas y todo va delimitado con llaves {}.

Las claves son únicas en los diccionarios, pero el valor no tiene porque. Los valores de un
diccionario pueden ser de cualquier tipo, pero las claves deben ser de un tipo de datos
inmutables como las cadenas, números o tuplas.
Como ejemplo crearemos un diccionario para traducir palabras del ingles al español. Para
este diccionario las claves serán cadenas:
>>> eng2sp = {}

>>> eng2sp["one"] = "uno"


>>> eng2sp["two"] = "dos"
La primera línea crea crea un diccionario llamado eng2sp, las otras asignaciones crean
nuevos pares clave:valor al diccionario. Podemos imprimir el valor actual del diccionario
como lo hacemos habitualmente:
>>> print(eng2sp)

{"two": "dos", "one": "uno"}


Como podemos observar, los valores del diccionario quedan separados por una coma.
El orden de los elementos en el diccionario puede que no sea el esperado
porque Python utiliza algoritmos complejos para determinar donde se almacenan los
pares clave:valor en un diccionario. Podríamos decir que este ordenamiento es
impredecible.

Acceder a los valores de un diccionario

Para acceder a los elementos de un diccionario, podemos utilizar el nombre del


diccionario junto con su clave para acceder al valor. Veremos un ejemplo sencillo:
>>> print eng2sp["one"], eng2sp["two"]
uno dos

Si intentamos acceder a un elemento del diccionario con una clave que no existepara ese
diccionario nos saldrá un error como este:
>>> print eng2sp["six"]
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
print eng2sp["six"]
KeyError: 'six'
Hashing

Podrías estar preguntándote porque utilizar diccionarios si el concepto de clave:valorpodría


ser implementado utilizando una lista de tuplas:

>>> {"Manzanas": 430, "Bananas": 312, "Naranjas": 525, "Peras": 217}

{'Peras': 217, 'Manzanas': 430, 'Naranjas': 525, 'Bananas': 312}

>>> [('Manzanas', 430), ('Bananas', 312), ('Naranjas', 525), ('Peras', 217)]

[('Manzanas', 430), ('Bananas', 312), ('Naranjas', 525), ('Peras', 217)]

La razón es porque los diccionarios son mucho más rápidos, implementan una técnica
llamada Hashing, que nos permite acceder a un valor rápidamente. Por el contrario,
la búsqueda en una lista de tuplas sería mas lenta. Si queremos buscar un valor asociado
a una clave, tendríamos que iterar sobre cada tupla para encontrar el elemento. Y si la llave
no estuviera en la lista tendríamos que llegar hasta el último elemento para averiguarlo.

Otra forma de crear un diccionario es proporcionar una lista de pares clave:valorcomo en


ejemplo anterior:

>>> eng2sp = {"one": "uno", "two": "dos", "three": "tres"}

Vuelvo a repetir, no importa con que orden escribamos los pares, los valores en un
diccionario se acceden por su clave, no con índices, por lo que no deberíamos
preocuparnos por el orden.
Actualizar y agregar elementos en un diccionario

Podemos cambiar valores de los elementos, agregar nuevos pares clave:valor y


también eliminarlos. A continuación muestro un ejemplo de todo lo dicho anteriormente,
se crea un diccionario con varias frutas y el stock correspondiente:

>>> inventario = {"manzanas": 430, "bananas": 312, "naranjas": 525, "peras": 217}

>>> print(inventario)

{'peras': 217, 'manzanas': 430, 'naranjas': 525, 'bananas': 312}

Si alguien compra todas las peras podríamos quitar la entrada del diccionario:

>>> del inventario["peras"]

>>> print(inventario)

{'manzanas': 430, 'naranjas': 525, 'bananas': 312}


O si esperamos que vengan más peras, cambiamos el valor de las peras para no eliminarlo:

>>> inventario["peras"] = 0

>>> print(inventario)

{'peras': 0, 'manzanas': 430, 'naranjas': 525, 'bananas': 312}

Para un nuevo envío de Bananas podríamos hacer lo siguiente:

>>> inventario["bananas"] += 200

>>> print(inventario)

{'peras': 0, 'manzanas': 430, 'naranjas': 525, 'bananas': 512}


La función len también nos será útil para trabajar con los diccionarios. Devuelve en número
de pares clave: valor

>>> len(inventario)

4
Métodos que podemos utilizar con los diccionarios en Python

Los diccionarios tienen una serie de métodos integrados que nos serán de mucha utilidad
El método key nos devuelve una lista de todos los claves del diccionario:
>>> inventario = {"manzanas": 430, "bananas": 312, "naranjas": 525, "peras": 217}
>>> inventario.keys()

['naranjas', 'peras', 'bananas', 'manzanas']

El método values nos devuelve una lista de todos los valores del diccionario:
>>> inventario.values()

[525, 125, 217, 312, 430]

El método clear elimina todos los elementos de un diccionario:


>>> print inventario
{'naranjas': 525, 'duraznos': 125, 'peras': 217, 'bananas': 312, 'manzanas': 430}
>>> inventario.clear()
>>> print inventario
{}

El método items nos devuelve una lista de tuplas y cada tupla contiene pares clave: valor
inventario.items()

[('naranjas', 525), ('peras', 217), ('bananas', 312), ('manzanas', 430)]

Las tuplas a menudo son útiles para obtener tanto la clave como el valor al mismo tiempo
mientras utilizamos un bucle:
>>> for (k,v) in inventario.items():
print("Hay",v,k, " en stock")

('Hay', 525, 'naranjas', ' en stock')


('Hay', 217, 'peras', ' en stock')
('Hay', 312, 'bananas', ' en stock')
('Hay', 430, 'manzanas', ' en stock')
El operador in y not in puede comprobar si una clave está en un diccionario:
>>> "naranjas" in inventario
True
>>> "duraznos" in inventario
False

Este método es de mucha utilidad ya que buscar una clave que no existe en un diccionario
provocará un error en tiempo de ejecución.

Otra opción sería utilizar el método has_key(key) que nos devuelve True si la clave existe,
de lo contrario devuelve False:
>>> inventario.has_key("bananas")
True
>>> inventario.has_key("adf")
False

Otro método muy útil es update, que nos permite agregar los elementos pares clave:valor
de un diccionario dentro de otro:
>>> print inventario
{'naranjas': 525, 'peras': 217, 'bananas': 312, 'manzanas': 430}
>>> otroInventario = {"duraznos": 125}
>>> inventario.update(otroInventario)
>>> print inventario

{'naranjas': 525, 'duraznos': 125, 'peras': 217, 'bananas': 312, 'manzanas': 430}

Funciones para utilizar con diccionarios en Python

Hay algunas otras que pueden ser de mucha ayuda:


Función cmp(dicc1, dicc2) compara los elementos de ambos diccionarios
Función str(dicc) produce una representación de cadenas
Operadores basicos en Python

Los operadores son símbolos especiales en python que llevan a cabo


operaciones aritméticas y de cálculo lógico.

Tipos de operadores en python

- Operadores aritméticos
- Operadores de comparación
- Operadores lógicos
- Operadores de asignación
- Operadores especiales

Operadores Aritméticos

Los operadores aritméticos se utilizan para realizar operaciones matemáticas como: Sumar,
Restar, Dividir, Multiplicar, etc...
La siguiente tabla muestra todos los operadores aritméticos soportados por Python.
Supongamos que tenemos una variable a = 10 y otra b = 20, entonces:

Operador Descripción Ejemplo

+ Suma a + b = 30

- Resta a – b = -10

* Multiplicación a * b = 200

/ División b/a=2

% Módulo – Devuelve el resto de la división b%a=0

** Exponente – Realiza exponencial a ** b = 10 a la 20

// División baja - Devuelve el entero de la 9 // 2 = 4 y 9,0 // 2,0 = 4,0


división
Ahora veamos algunos ejemplos en el shell interactivo:

¿Qué fue lo que hicimos?


Primero declaramos 3 variables (a = 21, b = 10 y c = 0)
Luego hicimos algunas operaciones matemáticas ya declaradas en la tabla de arriba.
Con la instrucción: (print "El valor de c es:", c), lo que hacemos es mostrar en
pantalla la cadena "El valor de c es:" y fuera de las comillas y después de la coma,
agregamos la variable c que devolverá el valor que tiene en el momento que es llamada.
Algo importante es que la variable c va cambiando de valor según se la valla modificando.
Operadores de comparación

Los operadores de comparación, también llamados comparadores relacionales, se


utilizan para comparar los valores. Se devuelve True o False según la condición.
Supongamos que la variable a = 10 y la variable b = 20:

Operador Descripción Ejemplo

Si los valores de los 2 operadores son


== (a == b) no es True
iguales la condición es True

Si los valores de los 2 operadores no


!= (a != b) es True
son iguales la condición es True

Si el valor del operador de la izquierda


> es mayor que el operador de la derecha (a > b) no es True
la condición es True

Si el valor del operador de la izquierda


< es menor que el valor del operador de (a < b) es True
la derecha la condición es True

Si el valor del operador de la izquierda


es mayor o igual que el valor del
>= (a >= b) no es True
operador de la derecha la condición es
True

Si el valor del operador de la


izquierda es menor o igual que el valor
<= (a <= b) es True
del operador de la derecha la condición
es True
Ahora veamos algún ejemplo en el shell de Python:

¿Qué fue lo que hicimos?


Primero declaramos 2 variables (a = 10 y b = 20)
Luego hicimos algunas operaciones de comparación ya declaradas en la tabla de arriba.
Por último, utilizamos el condicional if-else (que veremos en el próximo tema del tutorial)
para que nuestro ejemplo se vea en un caso más real.
Lo que hace el condicional es decir: si (if) a es igual a b (a == b) devuelve la cadena "a y b
son iguales", de lo contrario (else) devuelve la cadena "a y b son distintos". Como en
nuestro ejemplo a y b no valen lo mismo, la cadena que muestra en pantalla es "a y b son
distintos"
Operadores de asignación

Los operadores de asignación en python son utilizados para asignarle valor a las
variables. Por ejemplo: a = 5, el sigo = asigna el valor 5 a la variable a.

Supongamos que a = 10 y b = 20:

Operador Ejemplo

= c = a + b (se asigna el valor de a + b en c)

+= c += a es lo mismo que c = c + a

-= c -= a es lo mismo que c = c - a

*= c *= a es lo mismo que c = c * a

/= c /= a es lo mismo que c = c / a

%= c %= a es lo mismo que c = c % a

**= c **= a es lo mismo que c = c ** a

//= c //= a es lo mismo que c = c // a


Veamos algún ejemplo en el shell:

Operadores de asignación

¿Qué fue lo que hicimos?


Primero declaramos 3 variables (a = 10, b = 20 y c = 0) y luego hicimos
algunas operaciones de asignación ya declaradas en la tabla de arriba. Recordar que
la variable c va a ir cambiando de valor, por lo tanto la variable c del comienzo no es la
misma que la del final.
Operadores lógicos

Los operadores lógicos son: and, or y not.

Operador Descripción Ejemplo

and Es verdadero (True) si ambos operadores son verdaderos (a and b) es


True

or Es verdadero (True) si uno de los operadores es verdadero (a or b) es


True

not Es verdadero (True) si el operador es falso not (a and b)


es False
Veamos algún ejemplo en el shell de Python:

Operadores Lógicos en Python

¿Qué fue lo que hicimos?


Declaramos 2 variables (a = True y b = False).
--> a and b = False (Porque es verdadero si ambos son verdaderos)
--> a or b = True (Porque es verdadero si uno de los dos es verdadero)
--> not a = False (Porque la negacion de (a = True) es False)
--> not b = True (Porque la negación de (b = False) es True)
Operadores Especiales

Existen otros operadores en el lenguaje python:


Ejemplos de ellos:
--> is - Es True si los operadores son idénticos
--> is not - Es True si los operadores no son idénticos
--> in - Es True si el valor o variable se encuentra en la secuencia
--> not in - Es True si el valor o variable no se encuentra en la secuencia

Ejemplo en el shell de Python:

¿Qué fue lo que hicimos?


Primero declaramos 2 variables (a = 10 y b = 10).
-->> a is b - Es True porque son iguales
-->> a is not b - Es False porque son iguales
Luego cambiamos el valor de las variables (a = 1, b = 6 y c = [1,2,3,4,5])
--> a in c - Es True porque a se encuentra en c
--> b in c - Es False porque b no se encuentra en c
Ejercicios: Tutorial Python desde cero (Parte 1)

Los ejercicios serán bien sencillos (declarar variables, imprimir en pantalla, etc)
Puedes hacer los ejercicios en el shell de python o en el editor que prefieras.

Ejercicio 1
Declarar 5 variables (nombre, apellido, edad, altura, peso) con tus datos personales (o los
que tu quieras). Luego, con la función print devuelve todos los datos por pantalla con el
siguiente formato:

>>> print "Texto: ", variable

Donde "Texto: " cambiará por el valor que queremos mostrar (en caso de que sea nombre
sería "Nombre: ") y la variable será la que corresponda.
Ejercicio 2

Declarar 4 variables (a = 2, b = 3, c = 5 y resultado = 0).


Las variables serán declaradas solo una ves.
Se piden hacer varias operaciones (yo haré la primera de ejemplo)
Asignar a la variable resultado las siguientes operaciones e imprimirlas en pantalla:

--> a + b
--> c * a
--> (b + c) - a
--> c / a
--> c // b
--> a ** b
--> (a + b + c) * 2
--> c % b

Ejemplo:
Ejercicio 3

Algo que no debemos de olvidar cuando estamos haciendo un programa son


los comentarios. Los comentarios son textos informativos que ayudan a entender el
código (ya sea para nosotros u otros programadores que vean nuestro código). Los
comentarios comienzan con el símbolo # y todo lo que sea agregado después del
símbolo no será interpretado como código en nuestro programa.

>>> #Esto es un comentario


>>> a + b #Esto es una suma

Para escribir más de una linea de comentario se utilizan las comillas triples """

>>> """ Esto


>>> tambien
>>> es
>>> un comentario """

Ahora vamos al ejercicio.


1 - Declarar 3 listas con 5 elementos cada una inventados por ustedes (nombres, edades,
frutas).
2 - Antes de cada declaración agregar un comentario Ej: #Lista de Animales
3 - Imprimir en pantalla el primer elemento de cada lista
4 - Imprimir en pantalla el último elemento de cada lista
5 - Imprimir en pantalla una por una las 3 listas
Ejercicio 4

Declarar las siguientes listas:


par = [2, 4, 6, 8]
impar = [1, 3, 5, 7]
resultado = 0
En los próximos ejercicios debemos saber como acceder a las listas (recordar que los
índices comienzan en 0). Las operaciones deben asignarse a la variable resultado para
luego imprimirla en pantalla. Dejo el ejemplo del primer ejercicio para que quede claro.

1 - SUMAR (+) El primer elemento de la lista par + el último elemento de la lista impar
2 - RESTAR (-) El segundo elemento de la lista par - el segundo elemento de la
lista impar
3 - MULTIPLICAR (*) El último elemento de la lista par * el tercer elemento de la
lista impar
4 - DIVIDIR (/) El último elemento de la lista par / el primer elemento de la lista par
5 - SUMAR (+) El segundo elemento de la lista impar + el tercer elemento de la
lista par + el último elemento de la lista impar

Ejemplo del primer ejercicio:


Simple entrada y salida de datos en python
(input/Output)

Entrada/Salida de datos

Esta entrada pretende abarcar las funciones básicas de Entrada y Salida de datos
en python. Cuando hablamos de entrada nos referimos en general a los datos ingresados
por el usuario final del programa. La salida es lo que devuelve el programa.

Salida en pantalla

La forma más sencilla de producir una salida en python es utilizar la sentencia print
donde se puede pasar 0, una o más expresiones separadas por coma y ver el resultado en
pantalla de la siguiente manera:
Lectura de entrada con teclado

Python proporciona dos funciones integradas para leer una entrada estándar de teclado,
estas són:

 raw_input

 input

La función raw_input

La función raw_input([prompt]) lee una línea de entrada y la devuelve como cadena:

En este ejemplo verás la creación de un archivo.py (Extensión de Python) y su ejecución,


para eso lo primero que debemos hacer será abrir Genay (IDE que utilizaré para los
ejemplos del curso) y agregamos lo siguiente:

El archivo lo guardas con el nombre raw_input.py (al agregar la extensión .py se guardará
como un archivo Python) y lo ejecutas con F5 o con
Si todo salió bien la salida en pantalla debería ser la siguiente:
La función input
La función input([prompt]) es igual a la función raw_input excepto que input asume la
entrada como una expresión python válida y nos devuelve el resultado en pantalla.

Para este ejemplo hacemos lo mismo que en el ejemplo anterior (solo cambiamos el nombre
por input.py):

Ejecutamos y si todo salió bien deberíamos ver lo siguiente:


Funciones en Python

Las funciones en Python se utilizan para ejecutar un bloque de código en más de un lugar
en un programa, también pueden ser conocidas como métodos o procedimientos.
El lenguaje de programación Python ya viene con muchas funciones incorporadas, un
ejemplo de ello es la función print() pero también nos da la posibilidad de crear funciones.

Como definir y llamar a una función en Python

Las funciones se definen con la declaración "def", seguido del nombre de la función y los
paréntesis ().
Ejemplo: Vamos a definir una función mediante el comando "def saludo()" y la salida de la
función será "Estamos aprendiendo funciones en Python". Luego llamaremos la función
para que se ejecute.

1 def saludo():

2 print "<i>Estamos aprendiendo funciones en Python</i>"

4 saludo()

Donde:

 def saludo(): - es como se define la función

 print "Estamos aprendiendo funciones en Python" - es el contenido

 saludo() - es como se llama a la función

 Estamos aprendiendo funciones en Python - será la salida en pantalla


Hay un conjunto de reglas en Python para definir una función:

 Todos los argumentos o parámetros de entrada deben definirse dentro de los


paréntesis de la función.

 La primera sentencia de una función puede ser una cadena de documentación


(opcional). Esta sirve de ayuda para entender el comportamiento de la función.

 El código dentro de una función se inicia luego de los : (dos puntos) y debe tener
una sangría de espacio.

La importancia de la sangría (espacio) en Python

Es necesario entender la regla de la sangría para declarar una función y estas reglas también
son aplicables a otros elementos de Python (condicionales, bucles, etc).
Python sigue un estilo particular de sangría para definir el código, ya que las funciones en
python no tienen llaves para indicar el inicio y fin de una función.
Veremos un ejemplo donde utilizaremos la función "print" sin sangría para ver como nos
devuelve un mensaje de error.

Si agregamos la sangría antes de la función "print" la salida debe ser la esperada:


Tip: Por lo menos un salto de línea es necesario para llamar a la función (saludo()), pero
una buena práctica es utilizar 3 o 4 saltos de línea.

Si bien declaramos la sangría, es necesario mantener esa sangría para el resto del código.
Por ejemplo, en la siguiente captura de pantalla, cuando llamamos a otra
declaración "todavía estoy en la función saludo()" y no le asignemos la sangría, nos
mostrará un mensaje de error.

Ahora, cuando colocamos la sangría de la segunda sentencia en el mismo nivel que la


primera, el resultado es el esperado:
Como funciona el valor de retorno

El comando de retorno en Python especifica que valor se devolverá cuando se llama una
función.

Veamos un ejemplo:

Paso 1: Aquí veremos cuando la función no tiene retorno. Por ejemplo, queremos hacer el
cuadrado de 4 y que nos devuelva 16 cuando se ejecute la función. Esto lo logramos
haciendo "print x * x", pero cuando se llama a la función "print cuadrado" la salida será
"None". Esto se debe a que cuando se llama a la función, la recursividad no sucede y se cae
al final de la función.

Paso 2: Para ver esto más claro, reemplazaremos el comando de impresión con una
asignación y veremos la salida:

Cuando se ejecuta "print cuadrado(4)" lo que hace es devolver el valor del objeto y como
no tiene ninguna función específica devuelve "None"
Paso 3: Ahora vamos a ver como recuperar la salida con el comando "return". Cuando se
utiliza la función "return" y ejecutamos el código, obtendremos el valor 16.

Paso 4: Las funciones en python son en si un objeto, y un objeto tiene un cierto valor.
Ahora vamos a ver como trata un objeto Python. Cuando se ejecuta "print cuadrado", el
comando devuelve el valor del objeto. Puesto que no hemos pasado ningún argumento, no
tenemos ninguna función específica así que devuelve un valor predeterminado
(0x7f2a22fcc578) que es la ubicación del objeto. En la práctica de Python, es probable
que nunca tengas que hacer esto.
Argumentos en funciones

El argumento es un valor que se pasa a la función cuando se llama. En otras palabras,


cuando se llama a la función es un argumento y cuando se declara la función es un
parámetro.

Veamos como funciona un argumento en Python

Paso 1 - Los argumentos se declaran cuando se crea la función.

Paso 2 - Para declarar un valor predeterminado en el argumento, lo hacemos asignándolo


cuando definimos la función:

Ejemplo: x no tiene ningún valor predeterminado y el valor por defecto de y = 0. Cuando


suministramos solo un argumento y llamamos a la función "multiplicar", Python asigna el
valor suministrado para x y mantiene el valor de y = 0. Por lo tanto la multiplicación de x *
y será 0.
Paso 3 - Esta vez vamos a cambiar el valor de y = 2 en lugar de 0, y esto nos dará la salida
(4x2)=8.

Paso 4 - También podemos cambiar el orden de como se van a pasar los argumentos en
Python. Acá invertimos el orden del valor de x e y para x = 4 e y = 2.

Paso 5 - Múltiples argumentos también se pueden pasar como una matriz. En este ejemplo
llamamos múltiples argumentos (1,2,3,4,5) con la función (*args).
Tips:

 Hay una gran confusión en Python sobre los métodos y las funciones. Los métodos
en python están asociados a instancias de objetos mientras que las funciones no.
Cuando Python llama un método, se une el primer parámetro de la llamada a la
referencia del objeto apropiado. En términos simples, una función independiente en
Python es una "función", en tanto una función que es un atributo de una clase o
una instancia es un "método".

Conclusión: Una función en Python es una pieza de código que puede realizar una o
varias tareas y que puede ser re utilizada en cualquier parte del código.
Condicional if, elif, else en python

En programación, como ocurre también en la vida real (Foto), debemos elegir diferentes
caminos si ciertas condiciones se cumplen o no.
La estructura sería la siguiente: el condicional if hace que se ejecute una parte de nuestro
código si el valor es True (verdadero), de lo contrario nuestro programa seguirá otro
camino. A menudo, asociado con el condicional if encontramos los
condicionales elif y else.

Veamos un ejemplo en diagrama:


Veamos un ejemplo en código, pueden probar en consola o crear un nuevo archivo en
Geany como ya hemos visto:

#!/usr/bin/python
# -*- coding: utf-8 -*-
ana = 18

if ana >= 18:


print "Ana es mayor de edad"
else:
print "Ana es menor de edad"

En el ejemplo anterior creamos una variable ana que es igual a 18. Luego utilizamos
una condición if vara evaluar si ana es mayor o igual a 18, si esto se cumple se ejecuta el
código del if, si no, se ejecuta el código del else. Pueden cambiar el valor de la variable a
15 para ver como se comporta el programa.

En este tema de los condicionales aparecen dos nuevo conceptos: los bloques y
la identación (sangrado, sangría, etc). ¿Como funcionan?: Todas las declaraciones de
código con la misma distancia a la derecha pertenecen al mismo bloque de código (el
bloque termina en una línea con menos sangría o al final del código). Los bloques se
pueden anidar agregando más sangrías a la derecha. La identación se utiliza para que los
códigos sean más legibles, comprensibles para los programadores. Como se puede ver, el
código que sigue al condicional if y else comienza con una identación de 4 espacios (un
tabulador).
Bloques e identación en python

Veamos otro ejemplo utilizando el condicional elif:

#!/usr/bin/python
# -*- coding: utf-8 -*-

a = 25

if a < 22:

print "if"

elif a == 25:

print "elif"

else:

print "else"

Como en el ejemplo anterior, declaramos una variable a con valor 25. Luego utilizamos
un condicional if para ver si a es menor a 22, si se cumple imprime "if", luego
un condicional elif para ver si a es igual a 25, si se cumple se imprime "elif", luego si
ninguna de las dos se cumple se imprime "else". Pueden cambiar el valor de la
variable a para jugar y ver como se comporta el programa.

También podría gustarte