clase 2/4 curso introducción a python 2012

16
Repaso Otros tipos de datos Clase Excepciones Repaso Curso de Introducción a Python Clase 2 Defossé Nahuel, Pecile Lautaro UNPSJB Agosto 2012 Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Upload: nahuel-defosse

Post on 26-Jul-2015

383 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Repaso

Curso de Introducción a PythonClase 2

Defossé Nahuel, Pecile Lautaro

UNPSJB

Agosto 2012

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 2: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Repaso

En la clase anterior vimoscómo definir una funcióncómo definir una claseque los parámetros de las funciones podían tener valores pordefectoque los bloques estaban delimitados por la indentaciónque los comentarios se marcan con #

que las cadenas se delimitan con comillas simples, dobles otriplesque las listas se delimitan con corchetes, y son dinámicas

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 3: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Repaso

que en Python hay referencias a objetos en la memoria que seagrupan en el espacio de nombresque los métodos de una clase llevan explícito el primerparámetro llamado selfque la si la primer línea de una función (o método) es unacadena, se la toma como documentación.cómo abrir, leer, escribir y cerrar archivos

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 4: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Diccionarios

Diccionarios

Los diccionarios son tipos de datos que asocian clave = valor .Donde clave puede ser tipo de datos inmutable (enteros, cadenas,conjuntos, tuplas) y valor cualquier cosa.a = {}a[’nombre’] = ’pedro’a[’edad’] = 23# Tambien podemos crearlo con el tipob = dict()

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 5: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Diccionarios

Iteracción de diccionarios

Así como con listas podemos iterar de esta manera:lista = ["hola", "mundo", "python"]for valor in lista:

hacer_algo(valor)

Si hacemos esto con un diccionario, recorremos solo las claves.Para que podamos iterar de a par clave, valor:for clave, valor in a.iteritems():

print clave, "=>", valor

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 6: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Diccionarios

Otras formas de usar un diccionario

Podemos iterar sobre las claves o valores con los métodositeritems() o iterkeys().También podemos preguntar si tenemos una clave en un diccionario.

if ’nombre’ in un_diccionario:print "Tengo nombre y vale", un_diccionario[’nombre’]

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 7: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Módulos

Módulos

Un módulo es simplemente un archivo con extensión .py quecontiene código Python. Es la forma básica de agrupar código enPython.

El nombre del módulo es el nombre del archivo.Si la primer línea que no es un comentario es una cadena, se latomará como la documentación del módulo.En la primer línea también podemos especificar la codificacióndel módulo.

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 8: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Módulos

Importando módulos

Un módulo se incorpora a nuestro espacio de nombres con lapalabra reservada import.Los módulos se cargan (interpretan) una sóla vez, aunque sóloimportemos parte de ellos.Si realizamos un cambio a un módulo mientras estáimportado, deberemos aplicar los cambios recargándolo. Estose realiza con la función reload()

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 9: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Módulos

También podemos importar partes específicas de un módulomediante from <modulo> import <nombre>

Es importante mantener limpio nuestro espacio de nombres.

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 10: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Módulos

Podemos “ejecutar” un módulo como si fuese un programa,consultando si nuestro módulo se llama “__main__”.

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 11: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Módulos

El main de C/Java en Python

import sys

def main(args=sys.argv):print "El main"

if __name__ == "__main__":sys.exit(main())

De esta manera,Fijamos los argumentos de main con los argumentos que paseel usuarioEvitamos que la importación ejecute a mainDevolvemos la salida como código de salida para entrnosUNIX.

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 12: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Excepciones

Una excepción es un estado anómalo del programa, detectadopor Python en tiempo de ejecución.Una excepción lanzada debe ser capturada por alguien dentrode la pila de llamadas.Por defecto, Python muestra el mensaje de la excepción ydetiene la ejecución si nadie la captura.

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 13: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Para manejar excepciones, Python brinda la estructura de controltry/except/else/finally.

en el bloque try se intentará ejecutar código que puede lanzarexcepciones.en el bloque except se encuentra el código para manejar untipo de excepción determinado. Pueden existir múltiplesbloques except. Se ejecuta el primer bloque que correspondaa la jerarqúa de la excepción.el bloque else contiene código que se ejecutará en caso deque no ocurra ninguna excepción.el bloque finally se ejecutará en cualquier caso.

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 14: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Ejemplo

try:hacer_algo()

except ValueError:print "Algo no me gusto"

except IndexError as err:print "Paso %s" % err

finally:print "Me ejecuto siempre"

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 15: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Ejemplo

# En el cuerpo de alguna funciontry:

hacer_algo()except AlgoSalioMalException:

print "Algo no me gusto"return False

else:return True

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python

Page 16: Clase 2/4 Curso Introducción a Python 2012

RepasoOtros tipos de datos

ClaseExcepciones

Las excepciones son objetos también. Mas específicamente,son instancias de Exception o alguna de sus subclases.

class MiExcepcion(Exception):pass #

Las excepciones instanciadas se pueden lanzar con la palabrareservada raise.if "funcionaa!" in sys.argv:

raise MiExcepcion("Mal chabon, mal")

Defossé Nahuel, Pecile Lautaro Curso de Introducción a Python