19. Definición de funciones¶
Las funciones son bloques de código que realizan una tarea determinada que deseamos ejecutar una o varias veces. También se utilizan las funciones para agrupar instrucciones con un nombre descriptivo.
Gracias a las funciones podemos dividir un programa largo en muchos bloques pequeños. Esto facilita mucho la programación y la lectura del código por parte de otras personas.
Ejemplo de definición de una función:
def mensaje():
print('Hola, mundo.')
mensaje()
La definición de la función no hace nada por si sola. Es necesario
llamar a la función mensaje()
para que se ejecute el código
que se encuentra dentro de ella.
Parámetros y argumentos¶
Los parámetros son las variables que se declaran entre paréntesis en la definición de la función.
Los argumentos son los valores que utilizamos para llamar a la función. Los argumentos permiten personalizar el comportamiento de una función y pueden ser de diferentes tipos (booleano, números, cadenas de texto, etc).
Ejemplo de definición de una función con un parámetro (nombre):
def saludo(nombre):
print('Hola', nombre, '¿Qué tal estás?')
Llamada a la función con dos argumentos distintos ('Javier' y 'Sara'):
saludo('Javier')
saludo('Sara')
Resultado:
Hola Javier ¿Qué tal estás?
Hola Sara ¿Qué tal estás?
Sentencia return
¶
La sentencia return
se utiliza para devolver un dato desde la función.
También se puede utilizar para terminar la función en ese punto,
con un comportamiento semejante a la sentencia break
de un bucle.
Ejemplo de definición de una función con return
:
def suma(a, b):
return a + b
print(suma(3, 5))
print(suma(11, 23))
Resultado:
8
34
Ejercicios¶
Escribe una función que calcule si un número es par o impar e imprima por la pantalla el resultado.
Escribe también en el programa varias llamadas a la función con varios números para comprobar que funciona correctamente.
Pista:
def es_par(num): if ... : print( ... ) else: print( ... )
Escribe la definición de una función llamada 'mayor(a, b)' a la que le pasemos dos números como argumentos y que retorne el mayor de los dos.
Escribe también en el programa varias llamadas a la función con varias parejas de números, para probar que funciona correctamente.
Pista:
def mayor(a, b): if ... : return ... else: return ... print( mayor(5, 9) ) print( mayor(20, 6) ) print( mayor(12, 15) )
Resultado:
9 20 15
Escribe la definición de una función que transforme grados celsius a grados fahrenheit sabiendo que:
fahrenheit = celsius * 9.0 / 5 + 32
Pista:
def fahrenheit(celsius): return ... print( fahrenheit(-5) ) print( fahrenheit(22) ) print( fahrenheit(40) )
Resultado:
23.0 71.6 104.0
Escribe la definición de una función que retorne el factorial de un número.
El factorial es el resultado de multiplicar todos los números desde el 1 hasta el número deseado.
Imprime el factorial de 5, 8 y 20.
Pista:
def factorial(num): resultado = 1 for n in range(1, ...) resultado = ... return resultado print( factorial(5) ) print( factorial(8) ) print( factorial(12) )
Resultado:
120 40320 479001600
Escribe la definición de una función que imprima una fila de n asteriscos en pantalla.
Llama a esa función varias veces para imprimir un triángulo de asteriscos que comience por 1 asterisco y termine con 10 asteriscos.
Pista:
def asteriscos(n): for i in range( ... ): print('*', end='') print() for num in range(1, 11): asteriscos( ... )
Escribe la definición de una función que imprima la tabla de multiplicar de un número.
Utiliza esta función para imprimir la tabla del 3 y la tabla del 5.
Pista:
def tabla_mult(n): print('\nTabla del', ...) for i in range(1, 11): print( ... ,'x', ... , '=', ... ) tabla_mult(3) tabla_mult(5)
Resultado:
Tabla del 3 3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 3 x 5 = 15 3 x 6 = 18 3 x 7 = 21 3 x 8 = 24 3 x 9 = 27 3 x 10 = 30 Tabla del 5 5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45 5 x 10 = 50