Está en la página 1de 40

Funciones

por
Jhonny Felipez
Universidad Mayor de San Andrés
Contenido
O Función
O Argumentos
O Parámetros
O Retorno de valores
O Múltiples Parámetros y/o Argumentos
O Alcance de las variables
O Funciones Anónimas

2
Función

3
Sentencias almacenadas (y
reutilizadas)
… def a():
a() print(“Hola”)
x= x+1 print(“Amigo”)
a()

Llamamos a estos trozos de código reutilizables "funciones".


4
Funciones en Python
O Hay dos tipos de funciones en Python.
O Funciones incorporadas que se proporcionan
como parte de Python - input(), type(),
float(), int() ...
O Funciones propias y que luego se las utiliza.
O Tratamos a los nombres de las funciones
incorporadas como "nuevas" palabras
reservadas.

5
Definición de una función
O En Python, una función es un código
reutilizable que toma cero o más
argumentos como entrada, realiza alguna
tarea y luego devuelve cero o más
resultados.
O Definimos una función usando la palabra
reservada def
O Llamamos a la función usando el nombre de
la función, paréntesis y argumentos.
6
Función pow
Una función es un
código almacenado que
c = pow(2,3)
se utiliza. Una función
toma alguna entrada y
8 produce una salida.

2y3 Función 8
(números) pow() (un número)

7
Construyendo nuestras
propias funciones
O Creamos una nueva función utilizando la
palabra clave def seguida de parámetros
opcionales entre paréntesis.
O Le damos sangría al cuerpo de la función
(grupo de sentencias).
O La sintaxis de una definición de función es:

def nombre (parámetros):


sentencias
8
Ejemplo
x = 3 El factorial de 3 es 6
y = 1
def fact(n):
f = 1
for i in range(1,n+1):
f = f * i
return f
y = fact(x)
print("El factorial de", x, "es", y)

9
Definiciones y Usos
O Una vez que hemos definido una función,
podemos llamarla (o invocarla) tantas veces
como queramos
x = 3 El factorial de 3 es 6
y = 1
def fact(n):
f = 1
for i in range(1,n+1):
f = f * i
return f
y = fact(x)
print("El factorial de", x, "es", y)
10
Argumentos

11
Argumentos
O Un argumento es un valor que se pasa a la
función como su entrada, cuando se llama a
la función.
O Se coloca los argumentos entre paréntesis
después del nombre de la función.

c = pow(2,3)

Argumentos

12
Parámetros

13
Parámetros
O Un parámetro es una variable que se utiliza
en la definición de la función que permite
que el código de la función acceda a los
argumentos de una función en particular.
Parámetro

def esPar(n):
if n % 2 == 0:
return True
else:
return False

print(esPar(6)) 14
Parámetros opcionales
O Las funciones pueden tener parámetros
opcionales, también llamados parámetros
predeterminados.
O Los parámetros predeterminados son
parámetros que no tienen que darse, si se
llama a la función. En este caso, se utilizan
los valores por defecto.

15
Ejemplos de parámetros
opcionales
def suma(a, b = 0): 3
return a+b 5

suma(3)
suma(3,2)

16
Retorno de valores

17
Retorno de valores
O A menudo, una función tomará sus
argumentos, realizará algunos cálculos y
retornará un valor que se utilizará como el
valor retornado de la función. La palabra
clave return se utiliza para ello.
def esPar(n): True
if n % 2 == 0:
return True
else:
return False

print(esPar(6))
18
Argumentos, parámetros y
resultados
print(esPar(6)) Parámetro

def esPar(n):
if n % 2 == 0:
6 return True True
else:
return False
Argumento Resultado
19
Retornando Múltiples
Valores
O Una función de Python puede retornar
múltiples valores.

def division(a,b):
return a//b, a%b

c,r = division(5,2)
print(c,r)

20
Funciones nulas (no
fructíferas)
O Cuando una función no devuelve un valor,
se denomina una función "nula"
O Las funciones que devuelven valores son
funciones "fructíferas".
def suma(a,b):
print(a+b)
return None
Función nula
def suma(a,b):
return a+b Función fructífera
21
Múltiples Parámetros y/o
Argumentos

22
Múltiples Parámetros y/o
Argumentos
O Se puede definir más de un parámetro en la
definición de la función, para esto
simplemente se agrega más argumentos
cuando se llama a la función.
O Se tiene que hacer coincidir el número y
orden de los argumentos y parámetros.
def suma(a,b):
return a+b

print(suma(3,2))
23
Alcance de las variables

24
Alcance de las variables
O Es posible que no se pueda acceder a todas
las variables de un programa en todas las
ubicaciones del programa. Esto depende de
donde se haya declarado una variable.

25
Ámbito de las Variables
O El alcance de una variable determina la
parte del programa donde se puede acceder
a un identificador particular. Hay dos
ámbitos básicos de las variables en Python:
O Variables globales
O Variables locales

26
Variables Globales
O Una variable que está definida fuera de una
función tienen un alcance global.

27
Ejemplo
#-*- coding: utf-8 -*-
s = 0 # Esta es una variable global libre.

def suma(a, b):


s = a + b # s es una variable local
print("(Dentro de la función) s local = ", s)
return s

suma(2, 3)
print("(Fuera de la función) s global = ", s)

(Dentro de la función) s local = 5


(Fuera de la función) s global = 0

28
Variables Locales
Una variable local está definida dentro del
cuerpo de una función y no se puede usar de
nuevo cuando la función ha terminado de
ejecutarse porque existe solo dentro de la
función.

29
Variables globales libres
Si a una variable global no se le asigna valor
en una función, Python la considera libre y
busca su valor en los niveles superiores de
esa función, empezando por el
inmediatamente superior y continuando hasta
el programa principal.

30
Variables declaradas global
Si queremos asignar valor a una variable
global en una subrutina, pero no queremos
que Python la considere local, debemos
declararla en la función como global.

31
Ejemplo
def suma():
global s # s es una variable global
s = a + b # a y b son variables globales libres

a = 2
b = 3
suma()
print("s = ", s)

s = 5

32
Variables declaradas como
nonlocal
Las variables nonlocal se utilizan en una
función que está dentro de alguna función y
donde se requiere cambiar el valor de alguna
variable local de la función externa. Esto
significa que la variable no puede ser ni local
ni global.

33
Ejemplo
def funcion_externa():
x = 2
print("x es", x)

def funcion_interna():
nonlocal x # x es una variable no local
x = 5

funcion_interna()
print("Cambio x local a", x)

funcion_externa()

x es 2
Cambio x local a 5
34
Funciones Anónimas

35
Funciones Anónimas
O La funciones se llaman anónimas porque no
se declaran de manera estándar utilizando
la palabra clave def. Puede utilizar la
palabra clave lambda para crear pequeñas
funciones anónimas.
O Las formas lambda pueden tomar cualquier
número de argumentos pero retornan un
solo valor en forma de una expresión.

36
Funciones Anónimas
O No contienen comandos o expresiones
múltiples.
O Una función anónima no puede ser una
llamada directa a imprimir porque lambda
requiere una expresión.
O Las funciones lambda no pueden acceder a
otras variables que no sean sus parámetros
o sean variables globales.

37
Ejemplo
suma = lambda a, b: a + b

print("Suma = ", suma(2, 3))


print("Suma = ", suma(5, 8))

Suma = 5
Suma = 13

38
Bibliografía
O https://docs.python.org/3/reference/compo
und_stmts.html#function-definitions
O https://docs.python.org/3/reference/expres
sions.html#lambda

39
Gracias

También podría gustarte