Curso de Python Clase 5 Dpto. Telemática CUJAE Curso

Slides:



Advertisements
Presentaciones similares
Te presento a Python Qué es Python? Lenguaje interpretado
Advertisements

VALORES AGRUPADOS EN INTERVALOS. El consejo académico del colegio aplicó una prueba de conocimientos, entre 70 estudiantes elegidos al azar. El puntaje.
PROGRAMACIÓN I CENTRO DE ESTUDIOS INTEGRADOS EL MARISCAL - CEIM Ing. Luisa Fernanda Arenas Castañeda Feb 6 de 2016.
Lenguaje de programación: Lua Fundamentos de lenguaje de programación. Iván Cardemil Patricio Tudela Camilo Rojas Llosect Moscoso.
Unidad 1: Conceptos fundamentales Instituto Tecnológico de Toluca Ing. Sistemas Computacionales Asignatura: Programación Lógica y Funcional Presentan Nieto.
PARTICIONES EN UN DISCO DURO Diagnóstico y Mantenimiento INTE 3020 Elena López 15/11/2013.
Curso de Python Clase 2 Dpto. Telemática CUJAE Curso
Curso de Python Clase 4 Dpto. Telemática CUJAE Curso
Curso de Python Clase 1 Dpto. Telemática CUJAE Curso
Administración de Sistemas Gestores de Bases de Datos.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Funciones en lenguaje C 2 Funciones Definición: – Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad.
Internet Protocols (IPs)
Manejo de Excepciones Agustín J. González ELO329 ELO329.
Convenciones de nomenclatura y diseño
Estructuras de Control.
Funciones, Arreglos y Vectores
ROBERTO PINEDA FLORES. ALEXIS JULIAN VELAZQUEZ NAVA.
Olimpiadas Chilenas de Informática - Formación
Capítulo 13 Leer archivos JSON con AJAX
Olimpiadas Chilenas de Informática - Formación
Métodos y parámetros.
Stored Procedures Firebird.
BLOQUES.
SAP Business One, Versión 9.0
Conceptos básicos de programación
FUNCIONES Y PROCEDIMIENTOS
Métodos en Java.
Algunas Características de C++ no presentes en C
Estructuras de Datos Recursividad.
Manipulando celdas Selección de celdas
CAPÍTULO 2: PRINCIPIOS BÁSICOS DE MATLAB
Tema 4 Elementos para el Desarrollo de Algoritmos
Algunas Características de C++ no presentes en C
Tema 6. Conceptos básicos de programación Clase 1
Definición y Conversión de datos
Certificado de Hacking Ético Experto(Chee)
Procedimientos y Funciones
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
Funciones Básicas de Excel
Ayudantía 3: Procesos y threads
2da clase ofimatica.
FUNCIONES DE BUSQUEDA Y REFERENCIA MODULO MICROSOFT EXCEL 2013
CONSULTA DE BASES DE DATOS
Fundamentos de programación en TIG 4. Aptana y Arcpy
Estructuras de control en PHP
Paul Leger Funciones Paul Leger
Programación en Java..
CAPACIDAD DE DETECCION Y CORRECCION DE ERRORES
Curso de iniciación al trabajo con MatLab 7.0
Conceptos de Objetos, Clases y Otros Modelo Conceptual
Java – programación orientada a objetos programación ii – iee
LENGUAJE C.
Matlab como calculadora
Unidad 2 Estructuras ESCUELA DE COMPUTACIÓN.
FUNCIONES Y PROCEDIMIENTOS
Símbolos Indice Pág. Direcionamiento Absoluto y Simbólico
MC Beatriz Beltrán Martínez Verano 2018
Informática Ingeniería en Electrónica y Automática Industrial
2.  Diagramas de Estado.
Informática Ingeniería en Electrónica y Automática Industrial
Manejo de Excepciones Agustín J. González ELO329 ELO329.
Informática Ingeniería en Electrónica y Automática Industrial
CC 1002: Introducción a la Programación Clase 19
Programación Modular Programación de Computadoras - Hugo Vega Grupo2: Reina Rodríguez Miriam Salluca.
Manejo de Excepciones en C++
Bucles e Iteración – Parte 4
Variables, Expresiones y Enunciados
Funciones Subprogramas definidos por el usuario Subprogrmas.
Lenguajes de Bucle: Lo Que Hacemos en los Bucles
Transcripción de la presentación:

Curso de Python Clase 5 Dpto. Telemática CUJAE Curso

Objetivos Dpto. Telemática CUJAE Curso Ver reglas que rigen el ámbito de las variables dentro de una función. Aprender como funcionan los “espacios de nombres”. 2.Conocer nuevas funciones y tipos de datos. 3.Ver trabajo de excepciones en Python.

Funciones Dpto. Telemática CUJAE Curso Cada vez que una función se ejecuta se crea un nuevo espacio de nombres. Este espacio de nombres contiene los nombres de los parámetros de la función, más los nombres de las variables que se le hayan asignado algún valor dentro del cuerpo de la función. En la resolución de nombres el intérprete siempre busca en el espacio de nombres local. Si el nombre no es encontrado, entonces el intérprete busca en el espacio de nombre global.

Funciones Dpto. Telemática CUJAE Curso El espacio de nombres global para una función es el espacio de nombre del módulo donde la misma fue definida. Programa de ejemplo: a = 15 def example(a,b): print a,b,c c +=10 c =3 example(1,2) print c

Funciones Dpto. Telemática CUJAE Curso Si el intérprete no encuentra en el espacio global el nombre buscado, entonces busca en el espacio de nombre incorporado por el lenguaje. Si no es encontrado en este último lugar, ocurre un error. Programa de ejemplo: def example(a): print abs(a) def abs(x): return “My abs” example(-15)

Funciones Dpto. Telemática CUJAE Curso Los espacios de nombres en Python son almacenados como diccionarios. Para obtener el espacio de nombres local se puede utilizar la función “locals”. Para obtener el espacio de nombres global se puede utilizar la funcion “globals”.

Funciones Dpto. Telemática CUJAE Curso Programa de ejemplo: def example(a, b): c = a + b print “Espacio de nombres\ global: ”, globals() print “Espacio de nombres\ local: ”, locals() example(1,2) CCC = ‘asdas’ example(3,4)

Funciones Dpto. Telemática CUJAE Curso Las reglas de búsquedas de identificadores en los espacios de nombres se pueden alterar con la sentencia “global”. Esta sentencia permite especificar que una lista de nombres pertenece al espacio de nombre global. La misma puede repetirse y aparecer en cualquier lugar dentro del cuerpo de una función.

Funciones Dpto. Telemática CUJAE Curso Programa de ejemplo: a = 15 def example(a,b): print a,b,c global c c = 10 c =3 example(1,2) print c

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una versión de Python anterior a la 2.1. En caso de que existan los espacios anidados, la búsqueda de un nombre o identificador se hace de la misma manera, solo que antes de buscar en el espacio de nombre global, se hace en los anidados.

Funciones Dpto. Telemática CUJAE Curso Programa de ejemplo: def bar(): x = 10 def spam(): print 'x is ', x while x > 0: spam() x -= 1

Funciones Dpto. Telemática CUJAE Curso Programa de ejemplo: def AAA(): aaa = 15 def AA(): aa = 14 print "Global: ", globals() print "\n\nLocal: ", locals() AA() AAA()

Funciones Dpto. Telemática CUJAE Curso En Python las funciones también son objetos creados como vimos en las diapositivas anteriores. Este tipo de objeto pertenece a la categoría de “Objetos que pueden ser llamados”. La única operación permitida sobre un objeto de tipo función es llamar al mismo “Nombre(Lista_de_Argumentos)”. Existen diferencias entre las funciones definidas por el usuario y las incorporadas por el lenguaje, por tanto las mismas no pertenecen a un mismo tipo de objeto. La siguiente tabla muestra atributos que tienen las funciones definidas por el usuario.

Funciones Dpto. Telemática CUJAE Curso f.__doc__ Cadena de documentación f.__name__ Nombre de la función f.__dict__ Diccionario que contiene los atributos de la función. f.func_code Código compilado. f.func_defaults Tupla con los argumentos por defecto. f.globals Diccionario que contiene el espacio de nombres global. f.func_closure Tupla que contiene datos relativo a ámbitos anidados.

Funciones Dpto. Telemática CUJAE Curso Programa de ejemplo: def f(a =15): print ‘Esto es una prueba’ a = []; a.append(f) a[0].__name__ f.func_defaults

Funciones Dpto. Telemática CUJAE Curso En Python existe un límite para las llamadas a funciones recursivas. La función “sys.getrecursionlimit()” devuelve el número máximo de llamdas recursivas (por defecto 1000). La función “sys.setrecursionlimit() ” es utilizada para cambiar este valor. Ejemplo: x = 1020 def inexample(): global x; print x if x: x -= 1; inexample()

Funciones Dpto. Telemática CUJAE Curso La sentencia “lambda” se utiliza para crear funciones anónimas. Tiene la forma: lambda argumentos: expresión Donde “argumentos” es una lista separada de argumentos y “expresión” es una expresión en la cual están presentes dichos argumentos. El código que define “expresión” debe ser una expresión válidad y no puede tener sentencias como “print”, etc. Las reglas de ámbito para variables son las mismas que las de las funciones comunes.

Funciones Dpto. Telemática CUJAE Curso Programa de ejemplo: a = lambda x,y: x+y b = lambda x: x.ljust(20) print a(2,3) print b(´Test´)

Funciones Dpto. Telemática CUJAE Curso La función “map” tiene la siguiente forma: t = map(func, s,.. ) Donde la función “func” es llamda pasándole como parámetro cada elemento de la secuencia “s”. En caso de que más de una secuencia sea pasada como parámetro, “func” debe tener tantos parámetros como secuencias hayan sido pasadas. Cuando una de las listas pasadas como parámetro sea más corta que las otras, será extendida con el objeto “None”.

Funciones Dpto. Telemática CUJAE Curso Esta función siempre devuelve una lista. Si “func” es “None”, la función identidad es asumida. Programa de ejemplo: def foo(x): return 3*x a = [1,2,3,4,5,6]; b = map(foo, a) print map(None, b) def foo1(a,b): return a**b print map(foo1, a,b) print map(None, a,b) print map(lambda x: 2*x, a)

Funciones Dpto. Telemática CUJAE Curso La función “reduce” acumula información sobre una secuencia y retorna un valor. Tiene la siguiente forma: reduce(func, s, [init]) La función “func” es aplicada a los dos primeros elementos de la secuencia “s” y el resultado junto con el próximo elemento se le pasa a “func” una vez más hasta que se agoten los elementos de “s”.

Funciones Dpto. Telemática CUJAE Curso En caso de que “init” sea especificado, a los efectos de la función “reduce” es como si se hubiese insertado al inicio de la secuencia. Programa de ejemplo: a = [0,1,2,3,4,5,6,7,8,9] def sum(x,y): return x+y b = reduce(sum, a) print b

Funciones Dpto. Telemática CUJAE Curso La función “filter” tiene la siguiente forma: filter(func, s) Esta función devuelve una lista que contiene aquellos elementos de la secuencia “s” que al ser pasados como parámetros a la función “func”, la misma devuelve “True”. Si “s” es una cadena de caracteres, una tupla o una lista, el resultado será una cadana de caracteres, una tupla o una lista respectivamente.

Funciones Dpto. Telemática CUJAE Curso En casos de que “func” sea “None” la función identidad es asumida. Programa de ejemplo: a = [0, 0xA, 2, 010, 3, 5, 6] b = filter(lambda x: x < 4, a) print b c = filter(None, a) def odd(x): return x % 2 print c, “\n”, filter(odd, a)

Funciones Dpto. Telemática CUJAE Curso “list comprehensions” es otra manera de crear listas sin tener que recurir al uso de “map”, “filter” o “lambda”. Las definiciones de listas usando estas últimas sentencias suelen ser menos claras que las que resultan de usar “list comprehensions”. Cada ““list comprehensions”” consiste en una expresión seguida de una sentencia “for”, seguida posiblemente por sentencias “for” o “if”.

Funciones Dpto. Telemática CUJAE Curso [expression for item1 in sequence1 for item2 in sequence2... for itemN in sequenceN if condition] El resultado es una lista, que se forma al evaluar la expresión en el contexto de las sentencias “for” e “if” que la siguen. Si la expresión debe ser evaluada como una tupa, los paréntesis son requeridos.

Funciones Dpto. Telemática CUJAE Curso Programa de ejemplo: [3*i for i in range(5)] a = ‘Esto es una prueba’ [3*x for x in a] [(x,y) for x in range(5) for y in range(5,10)] [(x,y*x) for x in range(9) for y in 'ABC' if x%2]

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una versión de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

Funciones Dpto. Telemática CUJAE Curso Todas las versiones de Python permiten funciones anidadas. Sin embargo antes de la versión 2.1, las funciones anidadas no proveían espacios de nombres anidados. Como resultado de esto, un programa que use funciones anidadas podría funcionar de una manera inesperada en una version de Python previa a la 2.1.

FIN Dpto. Telemática CUJAE Curso Por favor, nos sería muy útil que cualquier sugerencia o error que encontrase en el presente documento nos lo hicieran llegar a: