Capítulo 5.
Funciones
Reutilización del código
DRY don't repeat yourself
WET write everything twice or we enjoy typing
Definición y estructura de una función
Formato general de una función: una palabra seguida de paréntesis. Ya conocemos algunas:
print ("Hola")
range (2, 20)
Para definir funciones se usa la sentencia def. Los valores que se envían a la función se llaman
argumentos y van dentro del paréntesis.
Hay que definir las funciones antes de llamarlas (en otros lenguajes de programación esto no es así).
def mifuncion():
print("hola")
mifuncion()
Ejemplo de función que recibe un argumento:
def imprimeconexclamacion(palabra):
print(palabra+"!")
imprimeconexclamacion("hola")
Por pantalla mostraría: hola!
Ejemplo de función que recibe dos argumentos:
def sumavalores(x,y):
c=0
c=x+y
print (c)
sumavalores(2,3)
Mostraría por pantalla el 5
Los argumentos de una función se usan como variables dentro de la función. Sin embargo, fuera de
ella no son reconocidos
def funcion (x,y)
print(x+y)
print(x)
Daría NameError
Python 29
Cuando una función debe devolver un valor se utiliza la sentencia return
def max(x,y)
if x>=y:
return x
else:
return y
z = max(4,5)
print(z)
Daría por pantalla 5
Una vez que aparece return la función deja de ejecutarse, lo que hay detrás no cuenta.
def max(x,y)
if x>=y:
return x
else:
return y
print("esto no se imprimirá)
z=max(4,5)
print(z)
Daría el mismo resultado que la anterior.
Funciones con un número variable de argumentos
En Python se pueden definir y utilizar funciones con un número variable de argumentos. Basta con
añadir al final de la declaración una variable precedida por un asterisco.
Ejemplo:
def funcion(argumento_con_nombre, *argumentos_variables):
print(argumento_con_nombre)
print(argumentos_variables)
funcion(1,2,3,4,5)
Daría:
1
(2,3,4,5)
Funciones como objetos
Igual que sucede con las variables, podemos crear funciones iguales a otras
def multiplicar(x,y)
return x+y
a=3
b=4
producto=multiplicar
z=producto(a,b)
print(z)
Python 30
Módulos
Los módulos son líneas de código escritas por otras personas que nosotros podemos utilizar. Estos
módulos incluyen diferentes funciones.
Para poder usar el módulo en nuestro programa debemos importarlo (import). Por ejemplo, el
módulo random, incluye varias funciones relacionadas con la generación y el uso de números
aleatorios. Una de esas funciones es randint, que sirve para generar un entero aleatorio dentro de un
determinado intervalo.
import random
z=[Link](1,6)
print(z)
Generaría y mostraría por pantalla un número aleatorio entre 1 y 6.
En lugar de importar todo el módulo podemos importar solo una función del mismo o varias:
from math import pi
from math import pi, sqrt
Incluso podemos cambiar el nombre a la función al importarla:
from math import sqrt as raizcuadrada
Hay tres tipos de módulos:
- los que escribimos nosotros mismos en un programa y queremos usar en otro
- los que escriben otros usuarios
- los que están preinstalados en python. Al conjunto de estos últimos se le llaman biblioteca
estándar. Algunos de los más usados son string, re, datetime, math, random, os, multiprocessing,
socket, email, unitest, pdb, argparse o sys.
Puedes consultar la biblioteca estándar de Python y sus módulos en el siguiente enlace:
[Link]
Funciones y métodos
Te habrás dado cuenta de que a veces usamos la palabra método y otras la palabra función para
designar a cosas aparentemente parecidas.
Una función y un método a grandes rasgos hacen lo mismo: ambos son un fragmento de código que
hace uan determinada tarea. La diferencia es que una función devuelve un valor y un método no. Es
una simple cuestión de nomenclatura en la que no merece la pena perder mucho tiempo.
Python 31