Está en la página 1de 14

Funciones

IFTS 12
Estructura de Datos
Gustavo Moya
¿Qué es una
función?
Es un conjunto de instrucciones que busca
resolver un problema específico dentro del
programa.

Su principal objetivo es:

● Dividir y organizar el código en partes


más simples
● Encapsular el código para reutilizarlo y
evitar que se repita dentro del
programa.
Funciones
Python ya trae funciones específicas como las que ya hemos utilizado len() o print(). Pero
también podemos definir nuestras propias funciones para evitar ser repetitivos.

Principio de reusabilidad, nos dice


que si tenemos un fragmento de
código usado en muchos lugares, la
mejor solución sería pasarlo a una
función para evitar tener código
repetido, y actualizarlo en un sólo
lugar.

Principio de modularidad, en vez de


escribir extensas líneas de código, es
mejor crear módulos o funciones que
agrupen ciertos fragmentos de código
en funcionalidades específicas y
mejorando su lectura.
Definir una función en Python
Nombre de la función

Lista de parámetros (opcional)

Palabra reservada para definir


una función
def sumar(param1, param2):
# Instrucción 1
suma = param1 + param2
# Instrucción 2
print(‘Valores sumados’)

Palabra reservada para devolver un


valor (opcional) Valor que devuelve la función
return suma
Ejecutar una función
Para ejecutar una función def main():
hay que escribir su print('Comienzo del programa')
nombre como si fuera una
instrucción más del
multiplica_por_3(7)
programa.
print('Siguiente') Argumento

Siempre colocando los


argumentos necesarios de multiplica_por_3(113)
la función.
print('Fin') Parámetro

def multiplica_por_3(numero):
print(f'{numero} * 3 = {numero * 3}')
Argumentos por defecto
A veces necesitamos tener algún parámetro opcional definido en la función.
Para eso podemos asignar un valor por defecto en caso de no pasarle ninguno.

def suma(a, b, c=0):


return a+b+c

suma(5,5,3) # 13
suma(5,5) # 10
Return vacío

Cuadrado de un número solo si este es def cuadrado_de_par(numero):


par:
if not numero % 2 == 0:
return
else:
print(numero ** 2)
Varios return

La función es_par() devuelve True si def es_par(numero):


un número es par, sino False
if numero % 2 == 0:
return True
else:
return False
Return def cuadrado_y_cubo(numero):
return numero ** 2, numero ** 3

devuelve más cuad, cubo = cuadrado_y_cubo(4)

de un valor
def tabla_del(numero):
En Python se puede devolver más de un valor resultados = []
dentro de un mismo return. for i in range(11):
Por defecto, con return se puede devolver una
resultados.append(numero * i)
tupla de valores.
return resultados

Otro ejemplo sería devolver una lista de


# [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
valores.
res = tabla_del(3)
Ámbito local de la variable
Dentro de los lenguajes de
programación de alto nivel las variables
están definidas dentro de un ámbito. def saludo(nombre):
x = 10
El ámbito indica los lugares en donde la print(f'Hola {nombre}')
variable se conoce y se puede utilizar.

saludo('Gustavo') # Hola Gustavo


Los parámetros y variables definidos
dentro de una función tienen un ámbito print(x) # Error name 'x' is not defined
local. Esto quiere decir que no pueden
ser utilizados fuera de la función porque
no serán reconocidos.
Ciclo de vida de las variables
El ciclo de vida de una variable
determina el tiempo en que una variable
permanece en memoria. def saludo(nombre):
x = 10
Una variable dentro de una función print(f'Hola {nombre}')
existe en memoria durante el tiempo en
que está ejecutándose dicha función.
saludo('Gustavo') # Hola Gustavo

Cuando termina de ejecutarse, sus print(x) # Error name 'x' is not defined
variables y parámetros desaparecen de
la memoria, por lo tanto, no pueden ser
referenciados.
Ámbito global de la variable
y = 20
Las variables definidas fuera de una
función tienen un ámbito conocido como
global y son visibles dentro de las def muestra_x():
funciones, dónde solo se puede x = 10
consultar su valor. print(f'x vale {x}')
print(f'y vale {y}')

muestra_x()
# x vale 10
# y vale 20
Preguntas?
Muchas gracias!

IFTS 12
Estructura de Datos
Gustavo Moya

También podría gustarte