Funciones sencillas

Podemos agrupar diversos cálculos en funciones.

Ejemplo: ¿es rectángulo?


In [2]:
# punto A
x1 = 0
y1 = 0
# punto B
x2 = 0
y2 = 1
# punto C
x3 = 3
y3 = 1
# punto D
x4 = 3
y4 = 0
#calculamos las distancias entre ellos
from math import sqrt
dAB = sqrt((x2 - x1)**2 + (y2 - y1)**2)
dAC = sqrt((x3 - x1)**2 + (y3 - y1)**2)
dAD = sqrt((x4 - x1)**2 + (y4 - y1)**2)
dBC = sqrt((x3 - x2)**2 + (y3 - y2)**2)
dBD = sqrt((x4 - x2)**2 + (y4 - y2)**2)
dCD = sqrt((x4 - x3)**2 + (y4 - y3)**2)
rectangulo = (dAB == dCD) and (dAC == dBD) and (dAD == dBC)
rectangulo


Out[2]:
True

Podemos simplificar creando la función distancia


In [4]:
def distancia(x1, y1, x2, y2):
    return sqrt((x2 - x1)**2 + (y2 - y1)**2)

In [5]:
distancia(0,0,3,0)


Out[5]:
3.0

In [6]:
dAB = distancia(x1, y1, x2, y2)
dAC = distancia(x1, y1, x3, y3)
dAD = distancia(x1, y1, x4, y4)
dBC = distancia(x2, y2, x3, y3)
dBD = distancia(x2, y2, x4, y4)
dCD = distancia(x3, y3, x4, y4)
rectangulo = (dAB == dCD) and (dAC == dBD) and (dAD == dBC)
rectangulo


Out[6]:
True

Definición de funciones


In [7]:
def cuadrado(x):
    return x**2

Observa el sangrado. La instrucción return siempre indica el valor que devuelve la función


In [8]:
a = 7
cuadrado(a)


Out[8]:
49

In [9]:
cuadrado(5)


Out[9]:
25

In [10]:
x = 10
cuadrado(x)


Out[10]:
100

Cuidado:

  • Definir no es lo mismo que llamar a la función.
  • Los parámetros no son variables

In [13]:
# Las funciones se puede llamar entre si
from math import *
def xsin(x):
    return x*sin(x)

In [14]:
xsin(3)


Out[14]:
0.4233600241796016

In [15]:
xsin(pi)


Out[15]:
3.847214324707763e-16

En el cuerpo de la función puede haber diversas instrucciones.


In [16]:
def cuadrado(x):
    resultado = x**2
    return resultado

In [17]:
cuadrado(20)


Out[17]:
400

In [18]:
def longitud_circunferencia(radio):
    return 2*radio*pi
    
def area_circunferencia(radio):
    return pi * radio * radio

In [19]:
longitud_circunferencia(10)


Out[19]:
62.83185307179586

In [20]:
area_circunferencia(10)


Out[20]:
314.1592653589793

Las funciones no sólo sirven para tipos numéricos


In [21]:
def mayor_de_edad(n):
    return (n >= 18)

In [22]:
mayor_de_edad(15)


Out[22]:
False

In [23]:
mayor_de_edad(20)


Out[23]:
True

Funciones con varios parámetros

Las funciones pueden tener varios parámetros


In [26]:
def producto(a, b):
    return a*b

def area_rectangulo(base, altura):
    resultado = producto(base,altura)
    return resultado

def area_triangulo(base, altura):
    return producto(base, altura)/2.0

In [27]:
area_rectangulo(3,5)


Out[27]:
15

In [28]:
area_triangulo(3,5)


Out[28]:
7.5

Para trabajar con funciones más complicadas, el intérprete de Python puede ser incómodo. Podemos escribir nuestras funciones en ficheros .py y luego llamarlas.

--


In [ ]: