Вы находитесь на странице: 1из 11

Python: Funciones

Mario Marcelo Bern o


Area de Metodolog Programacin y Desarrollo de Software as, o Universidad Nacional de San Luis

June 10, 2011

Universidad Nacional de San Luis

Python: Funciones

Denicin de Funciones o

Denicin de una Funcin o o def all_items_positive(r): # definicin de una funcin o o # string de cocumetacin o "Check that all values in list r are positive." for i in r: if i <= 0: return False # retorna un resultado return True sequences = [[1, 5, 6, 0.01], [0.01, 1, 2]] for seq in sequences: # invocacin de una funcin o o if not all_items_positive(seq): print invalid: , seq

Universidad Nacional de San Luis

Python: Funciones

Denicin de Funciones o

Caracter sticas de las Funciones No se realiza chequeo de tipo de los argumentos


Es util para sobrecargar sin esfuerzo La funcin no ejecuta correctamente si no se pasan los argumentos o adecuados

Si bien el string de documentacin no se requiere es buena prctica o a de programacin colocarlo o Las funciones denidas por el usuario tienen el mismo estatus que una funcin primitiva o denida en otro mdulo o o

Universidad Nacional de San Luis

Python: Funciones

Denicin de Funciones o

Caracter sticas de las Funciones Tienen un nmero jo de argumentos u Correspondencia de parmetros posicional a Ejemplo def fixed_args(a, c, b): "Transforma los argumentos a un string y retorna.\ return "a=%s, b=%s, c=%s" % (a, b, c) print fixed_args(Hola, 1.2, [2, 1])

Universidad Nacional de San Luis

Python: Funciones

Denicin de Funciones o
Funciones con Argumentos con Valores por Defecto Los argumentos pueden tener valores por defecto Cuando un argumento no es provisto en la llamada se usa el valor por defecto Si un argumento de una funcin no tiene valores por defecto y dicho o argumento no est provisto en la llamada se produce un error a Se pueden usar nombres expl citos para cambiar el orden de los argumentos Ejemplo def default_args(a, b=bar, c=13): return "a=%s, b=%s, c=%s" % (a, b, c) print default_args(apa) # usa todos los valores por defecto print default_args(s, b=py) # usa un valor por defecto print default_args(c=26, a=apa)# cambia el orden

Universidad Nacional de San Luis

Python: Funciones

Denicin de Funciones o

Funciones con Chequeo de Tipos Expl cito Se usa la sentencia assert Esta sentencia verica si una expresin booleana es verdadera sino o reporta un error Se usa para validar ciertas condiciones en el cdigo o Se puede colocar un mensaje adicional Ejemplo def fixed_args(a, c, b): assert type(a) == type(1), "a debe ser un entero" return "a=%s, b=%s, c=%s" % (a, b, c) print fixed_args(a, 1.2, [2, 1])

Universidad Nacional de San Luis

Python: Funciones

Denicin de Funciones o
Funciones: Variables Locales Los argumentos son variables locales
Los valores inmutables se copian. Los valores mutables se pueden cambiar.

Las variables creadas dentro del def son locales. Las mismas desaparecen cuando la funcin naliza. o Ejemplo def test_local(a, r): print local original , a, r a = 12 r[1] = 999 print local changed , a, r a = 5 r = [0, 1, 2] print global original, a, r test_local(a, r) print global changed , a, r
Universidad Nacional de San Luis Python: Funciones

Denicin de Funciones o
Funciones sin return Una funcin no tiene porqu usar un return o e Si no posee return es similar a un procedimiento en otro lenguaje de programacin o Las funciones sin return retornan: None None es un valor especial que signica nada Ejemplo def concat_strings(a, b): str_type = type() # salva el tipo if type(a) == str_type and type(b) == str_type: return a + + b print strings:, concat_strings(first, second) print integers:, concat_strings(1, 2)

Universidad Nacional de San Luis

Python: Funciones

Funciones
Funciones Primitivas: map Funcin primitiva que trabaja sobre listas o Esta funcin toma como argumento una funcin y una lista o o
La funcin debe tomar un slo argumento y debe retornar un slo o o o valor La funcin se aplica a cada valor de la lista o Los valores resultantes son retornados en una lista

Ejemplo >>> from math import * >>> r = [0, 1, 2, 3, 4, 5, 6] >>> map(cos, r) [1.0, 0.54030230586813977, 0.41614683654714241, 0.98999249660044542, 0.65364362086361194, 0.28366218546322625, 0.96017028665036597]

Universidad Nacional de San Luis

Python: Funciones

Funciones
Funciones Primitivas: reduce Funcin primitiva que trabaja sobre una lista o reduce toma como argumento una funcin y una lista o Transforma la lista en un valor usando la funcin que se pas como o o argumento
La funcin toma un slo argumento y retorna su valor o o reduce aplica la funcin a los primeros dos argumetos y retorna un o unico valor La funcin luego se aplica a valor retornado y al prximo argumento o o As siguiendo hasta que todos los valores en la lista hayan sido usados

Ejemplo >>> r = [0, 1, 2, 3, 4, 5, 6] >>> def sum(x, y): return x+y >>> reduce(sum, r) 21
Universidad Nacional de San Luis

# (((((1+2)+3)+4)+5)+6)

Python: Funciones

Funciones
Funciones Primitivas: lter Funcin primitiva que trabaja sobre una lista o lter toma como argumento una funcin y una lista o La funcin recibida como argumento se usa para ltrar los valores o de la lista. lter retorna una lista con los valores ltrados.
La funcin toma un slo argumento y retorna su valor o o La funcin pasada como parmetro se aplica a cada argumento de la o a lista Si la funcin retorna como resultado verdadero el elemento se coloca o en la lista resultante Si la funcin retorna como resultado falso el elemento no se inserta o en la lista resultante

Ejemplo >>> >>> >>> [4, r = [0, 1, 2, 3, 4, 5, 6] def largo(x): return x>3 filter(large, r) 5, 6]
Universidad Nacional de San Luis Python: Funciones