Introducción a la programación con Python 3

Page 340

return suma

5

len lista

Mmmm. Está bien, pero se efectúa una llamada a media por cada iteración del bucle y hay tantas como elementos tiene la lista. Esa es una fuente de ineficiencia. Mejor calcular la media una sola vez y guardarla en una variable local: 1 2 3 4 5

6

1 2

def varianza lista suma 0 m media lista for elemento in lista suma elemento return suma len lista

m

2

Finalmente, la desviación típica no es más que la raíz cuadrada de la varianza, así que:

def desviación_típica lista return sqrt varianza lista

384 ¿Funcionan bien las funciones que hemos definido cuando suministramos listas vacías? Corrige las funciones para que traten correctamente este caso particular.

385 Enriquece el módulo estadisticas añadiendo una función que calcule el coeficiente de variación (definido como σ /¯ a) y el recorrido de la lista (que es la diferencia entre el mayor y el menor elemento de la lista).

386 Suponiendo que nos suministran una lista de enteros, diseña una función que calcule su moda. La moda es el elemento más repetido en una serie de valores.

6.10.4.

Un módulo para cálculo matricial

En el tema anterior estudiamos cómo operar con matrices. Vamos a «empaquetar» ahora algunas funciones útiles para manejar matrices. Empezaremos por una función que crea una matriz nula dados su número de filas y columnas: 1 2 3 4 5

1

1 2 3 4 5 6

def matriz_nula filas columnas M for i in range filas M append 0 columnas return M

Para crear una matriz A de dimensión 3 × 4 invocaremos así a la función:

A

matriz_nula 3

4

Ahora podemos escribir una función que lee de teclado los componentes de una matriz:

def lee_matriz filas columnas M matriz_nula filas columnas for i in range filas for j in range columnas M i j float input return M

Andrés Marzal / Isabel Gracia / Pedro García - ISBN: 978-84-697-1178-1

format i

338

j

Introducción a la programación con Python 3 - UJI - DOI: http://dx.doi.org/10.6035/Sapientia93


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.