clase 2/4 curso introducción a python 2012
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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