Clase 28. Python 4
Clase 28. Python 4
Clase 28
PYTHON 4
Funciones
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 27 Clase 28 Clase 29
Funciones
# Declaramos la función
def suma(a, b):
Código de la función s = a + b
print("Suma:", s)
Invocación de
# Programa principal la función
suma(5, 10)
Funciones | Definición
Elementos de una función:
La función def nombre_funcion() se debe definir antes de ser invocada por primera vez. Desde el
programa principal se invoca a la función escribiendo su nombre.Una función sin parámetros,
como la del ejemplo, realiza un objetivo sin recibir información desde el programa principal.
Funciones | Parámetros y Argumentos
Los parámetros son las variables que ponemos cuando se define una
función. En la siguiente función tenemos un parámetro: numero:
def multiplicar_por_5(numero):
print(f'{numero}*5 = {numero * 5}')
Los argumentos son los valores que se pasan a la función cuando ésta es
invocada, “7” en el ejemplo:
producto = multiplicar_por_5(7) //Invocamos la función
# Declaración # Ejecución
def saludar_dos(nombre): saludar_dos("Codo a Codo") # Argumento fijo
print(f'Hola {nombre}') nombre = input("Ingrese su nombre: ")
saludar_dos(nombre) # Argumento variable
Funciones | Parámetros
La siguiente función tiene dos parámetros, cuyos argumentos se obtienen
mediante la función input():
Función con dos parámetros Terminal
def imprimir_mensaje_N_veces(n, m): Mensaje: ¡Hola Codo!
for i in range(n): Nro. de veces que desea
print(m) imprimir: 4
¡Hola Codo!
mensaje = input("Mensaje: ") ¡Hola Codo!
veces = int(input("Nro. de veces que desea imprimir: ")) ¡Hola Codo!
imprimir_mensaje_N_veces(veces, mensaje) ¡Hola Codo!
print(sumar(2,6)) 8
print(sumar(5)) 5
print(sumar()) 0
print(potencia(6,1)) 6
print(potencia(exponente = 5, base = 2)) 32
print(potencia(8)) 64
print(potencia(base = 2)) 4
Funciones | Devolución de valores
Una función puede devolver información para ser utilizada o almacenada en
una variable. Se utiliza la palabra clave return, que regresa un valor y finaliza
la ejecución de la función. Si existe código después del return, nunca será
ejecutado. Puede haber más de un return por función.
Ejemplo de uso de una función con return Terminal
# La función resta dos valores numéricos.
def restar(num1,num2):
resta= num1-num2
return resta # Retorna un valor
# Programa principal
resultado= restar(10,3) El 1er resultado es: 7
print("El 1er resultado es:", resultado) El 2do resultado es: 6
print("El 2do resultado es:", restar(10,4))
Funciones | Devolución de valores
La sentencia return es opcional, y puede devolver, o no, un valor. Es posible
que aparezca más de una vez dentro de una misma función.
No se puede utilizar dentro de una función una variable que tenga el mismo
nombre que la función.
Función con return que no devuelve valores
#Muestra el cuadrado de un número sólo si este es par
def cuadrado_de_par(numero):
if not numero % 2 == 0:
return
else:
print(numero ** 2)
cuadrado_de_par(8) # 64
cuadrado_de_par(3) # nada, porque no es par
Funciones | Devolución de valores
La siguiente función muestra por pantalla si el número es par o no, utilizando
dos instrucciones return.
Función con dos return
def es_par(numero):
if numero % 2 == 0:
return True
else:
return False
print(es_par(2)) #True
print(es_par(5)) #False
Es posible definir, dentro de una función, una variable local con el mismo
nombre que tiene una declarada en el programa principal. Pero se trata de
otra variable con el mismo nombre, no comparten su contenido.
Ámbito y ciclo de vida de las variables
Algunos ejemplos sobre el alcance de las variables:
Variables Variables Variables
def funcion1(): a = 5 a = 5
a = 3 def funcion1(): def funcion1():
print(a) # 3 a = 3 global a
print(a) # 3 a = 3
funcion1() print(a) # 3
print(a) # ERROR! funcion1()
print(a) # 5 funcion1()
print(a) # 3
La función map() en Python aplica una función a cada uno de los elementos
de una lista:
Función map()
map(una_funcion, una_lista)
Funciones anónimas o lambda con map()
Una función lambda combinada con otras funciones, como map(), adquiere
más potencia.
Función lambda con map()
enteros = [1, 2, 4, 7]
cuadrados = list(map(lambda x : x ** 2, enteros))
print(cuadrados) # [1, 4, 16, 49]
En el código anterior se define una lista, y luego se utiliza map() para aplicar
una función lambda a cada uno de sus elementos. Esto da como resultado
una nueva lista, que se almacena en cuadrados.
La ventaja de usar map() es la simplicidad con la que se puede hacer esto, sin
usar bucles ni otra estructura accesoria.
Funciones anónimas o lambda con map()
Un ejemplo más interesante es, en lugar de pasar una lista de valores,
pasamos como segundo parámetro una lista de funciones:
Función lambda con map() Terminal
def cuadrado(x):
return x ** 2
def cubo(x):
return x ** 3
Todos los módulos deberían tener docstrings, y todas las funciones y clases
exportadas por un módulo también deberían tenerlos. En los objetos,
veremos que el docstring se convierte en el atributo especial __doc__.
Función documentada con docstring
def suma(a, b):
"""Esta función devuelve la suma de los parámetros a y b"""
return a + b
Docstrings | Documentar funciones
El siguiente es un ejemplo real de documentación mediante docstrings:
Función documentada con docstring
def cuad(x):
"""Dado un número x, calcula x²"""
return x * x # También podríamos haber hecho x ** 2
Videos: