Introducción Funciones

Ejercicio 1: Replicar la funcion nompropio de excel.


In [1]:
def nompropio(texto):
    resultado = ""
    for i in range(len(texto)):
        if i == 0:
            resultado += texto[i].upper()
        elif texto[i-1] == " ":
            resultado += texto[i].upper()
        else:
            resultado += texto[i].lower()
    return resultado

In [2]:
nombre = "jUaN pErEz"

In [3]:
nompropio(nombre)


Out[3]:
'Juan Perez'

In [4]:
nompropio('rodrigo TRIGO')


Out[4]:
'Rodrigo Trigo'

Ejercicio 2. Realice una función que calcule: $ \sum_{k=1}^{n} k^2 $

Para verificar si su funcion es correcta, puede calcular $ \frac{n(n+1)(2n+1)}{6} $


In [5]:
def sumatoria_k2(hasta):
    suma = 0
    while hasta > 0:
        suma += hasta**2
        hasta -= 1
    return suma

In [6]:
sumatoria_k2(100)


Out[6]:
338350

In [7]:
100*101*201/6


Out[7]:
338350.0

Ejercicio 3: Realice una función que calcule un promedio ponderado.


In [8]:
def calcula_nota(notas, ponderaciones):
    nota = 0
    for i in range(len(notas)):
        nota += notas[i] * ponderaciones[i]
    return nota

In [9]:
misnotas = [2.0, 7.0, 3.5, 3.8]

In [10]:
misponderaciones = [0.2, 0.2, 0.3, 0.3]

In [11]:
calcula_nota(misnotas, misponderaciones)


Out[11]:
3.99

Ejercicio 4. Realice una funcion que calcule la curtosis de una lista de valores, donde $$ Curtosis = \frac{\sum_{i=1}^{n} (X_i - \overline{X})^4}{n*\sigma^4} -3 $$ donde $\overline{X}$ es el promedio de la muestra y $\sigma$ es la desviación estandar.

Para ello realizaremos 3 funciones, promedio, varianza que es el cuadrado de la desviación estandar y luego la curtosis.


In [12]:
def promedio(valores):
    suma = 0
    for i in valores:
        suma += i
    return suma/len(valores)

In [13]:
promedio(misnotas)


Out[13]:
4.075

In [14]:
def varianza(valores):
    suma = 0
    prom = promedio(valores)
    for i in valores:
        suma += (i-prom)**2
    return suma/len(valores)

In [15]:
varianza(misnotas)


Out[15]:
3.316875

In [16]:
def curtosis(valores):
    suma = 0
    prom = promedio(valores)
    var = varianza(valores)
    for i in valores:
        suma += (i-prom)**4
    suma /= len(valores)*var**2
    suma -= 3
    return suma

In [17]:
curtosis(misnotas)


Out[17]:
-0.9127658969355084