Mesures

Un aparell mesura els valors de la pressió atmosfèrica en una determinada zona a l’exterior. Si les condicions meteorològiques no són bones, les mesures no són fiables. Per això l’aparell porta incorporat un sensor que detecta si les condicions són bones o dolentes. Al final d’un periode de temps, es disposa d’una llista de mesures amb valors reals corresponents a pressions atmosfèriques dins la qual hi poden haver strings: quan hi ha un asterisc (“*”) vol dir que les mesures que venen a continuació no són fiables i quan hi ha un signe d’igual (“=”) vol dir que les condicions meteorològiques ja tornen a ser bones i, per tant, les mesures que segueixen són fiables.

Dissenyeu les funcions següents en el mòdul mesures (fitxer mesures.py):

mesures.separa(lmes)

Retorna dues llistes calculades a partir de la llista de mesures lmes. La primera ha de contenir només les mesures fiables de lmes i la segona només ha de contenir les mesures de lmes que no són fiables.

Per exemple:

>>> dades = [101.4, 105.2, '*', 103.1, 103.4, '=', 101.2, 102.5]
>>> dades_fiables = [101.4, 105.2, 101.2, 102.5]
>>> dades_no_fiables = [103.1, 103.4]
>>> df, dn = mesures.separa(dades)
>>> df == dades_fiables
True
>>> dn == dades_no_fiables
True
mesures.mitjana(llista)

Retorna la mitjana aritmètica dels elements de la llista.

Tots els elements de la llista han de ser nombres. La llista ha de contenir un element com a minim.

Per exemple:

>>> dades_fiables = [101.4, 105.2, 101.2, 102.5]
>>> mfi = mesures.mitjana(dades_fiables)
>>> round(mfi, 2)
102.58
mesures.mitjanes(lmes)

Retorna dues mitjanes calculades a partir de la llista de mesures lmes. La primera és la mitjana de les mesures fiables i la segona és la mitjana de totes les mesures, tant si són fiables com si no.

La llista de mesures lmes ha de contenir una mesura fiable com a minim.

Per exemple:

>>> dades = [101.4, 105.2, '*', 103.1, 103.4, '=', 101.2, 102.5]
>>> mfi, mtot = mesures.mitjanes(dades)
>>> round(mfi, 2)
102.58
>>> round(mtot, 2)
102.8

Resoleu la funció mitjanes() usant les funcions separa() i mitjana().

mesures.proporcio(lmes)

Retorna la proporció de mesures fiables respecte del total de mesures de la llista de mesures lmes.

La llista de mesures lmes ha de contenir una mesura fiable com a minim.

Per exemple:

>>> dades = [101.4, 105.2, '*', 103.1, 103.4, '=', 101.2, 102.5]
>>> propfi = mesures.proporcio(dades)
>>> round(propfi, 3)
0.667

Resoleu la funció proporció() usant la funció separa().

Disposeu de jocs de proves (doctest) al fitxer mesures.txt. Pots trobar una solució a mesures.py