2. Errors de sistema (3 punts)¶
Representem el seguiment de l’estat d’un sistema com una llista d’strings on cada element és un estat que pot ser
'OK','WARN'o'ERROR'. Es considera que els dos últims són estats problemàtics. Cada posició de la llista correspon a un instant consecutiu en el temps. Per exemple, a la llista['OK', 'WARN', 'ERROR', 'ERROR']
el sistema es troba inicialment en estat
'OK', després passa a'WARN'i finalment es registren dos estats consecutius'ERROR'.Dissenya la funció
analitza_estatsque donada una llista amb el format anterior i un enter positiu que representa un límit d’errors, retorna una llista de missatges (strings) amb avisos de canvis d’estat o bé la llista['estat crític']si el nombre d’estats'ERROR'arriba al límit donat. Suposarem que la llista donada té com a mínim dos estats.La construcció de la llista de missatges ha de seguir les regles següents:
Si un estat és
'OK'i el següent és'WARN', cal afegir'alerta'.Si un estat és
'WARN'i el següent és'ERROR', cal afegir'estat greu'.Si dos estats consecutius són iguals i problemàtics, cal afegir
'sense canvi'.En qualsevol altre cas, no s’afegeix res.
Desa la funció al fitxer
errors.py:Els següents doctests mostren exemples del que ha de fer la funció:
>>> analitza_estats(['OK', 'OK', 'WARN', 'OK'], 2) ['alerta'] >>> analitza_estats(['OK', 'WARN', 'ERROR', 'ERROR', 'OK'], 3) ['alerta', 'estat greu', 'sense canvi'] >>> analitza_estats(['OK', 'WARN', 'ERROR', 'ERROR', 'OK'], 2) ['estat crític']
Disposes de més tests al fitxer
test-analitza-estats.txtDisposes de solucions al fitxer
errors.py.