Paradistes¶
Un ajuntament munta una fira pel solstici d’estiu cada any on hi van
paradistes. Per això disposa d’un fitxer on a cada línia hi ha el nom
del paradista (string), la longitud de la parada (real) i el producte
(string), separats pel caràcter punt i coma (;). A més, es disposa d’un
diccionari on la clau és el nom d’un producte i el valor és un tipus
de producte (strings). Només hi ha dos tipus de productes: alimentació
i artesania. Al fitxer, els paradistes estan ordenats per
ordre de més a menys preferència per participar a la fira (que depèn
de diversos factors). Per exemple:
joan pera;2.2;formatges marta perez;2.3;cuir georgina pi;1.8;joieria pepeta morales;1.9;embotits pere girbau;2.1;coques maria marti;2.3;vestits jordi pons;2;joieria narcis punti;1.9;cuir
Podeu descarregar el fitxer d’exemple
paradistes.txt
Aquest any, l’ajuntament vol posar a un costat de la Rambla parades d’alimentació i a l’altre d’artesania. Cada costat de la Rambla té una determinada longitud que no es pot excedir. L’ajuntament vol que obtinguem dos fitxers: un amb els noms dels paradistes d’alimentació i l’altre amb els d’artesania que poden anar a la fira. Els paradistes s’assignen per ordre d’aparició al fitxer i fins a omplir el corresponent costat de la Rambla. Si es dóna el cas que un paradista no hi cap, però si que hi cap un altre de menys preferència, s’hi assigna aquest altre.
Dissenyeu la funció
decodifica()que donada una línia del fitxer inicial (string) i el diccionari indicat, retorni el nom (string) del paradista, la longitud de la parada (real) i el tipus del producte (string).Deseu la funció al fitxer
parades.py. La funció ha de passar el següent doctest:>>> dic = {'formatges': 'alimentació', 'cuir': 'artesania', ... 'embotits': 'alimentació', 'coques': 'alimentació', ... 'vestits': 'artesania', 'joieria': 'artesania'} >>> decodifica('joan pera;2.2;formatges\n', dic) ('joan pera', 2.2, 'alimentació')
Nota
Podeu descarregar el fitxer amb tests
decodifica.txt.
Dissenyeu la funció
parades()que donats els noms de tres fitxers (fparadistes, falim i fartes), el diccionari indicat i les longituds corresponents als dos costats de la Rambla (lalim i lartes), obtingui a partir del fitxer fparadistes els fitxers falim i fartes, amb els noms dels paradistes d’alimentació i d’artesania, respectivament, que podran anar a la fira. Aquesta funció ha de cridar a l’anterior.Deseu la funció al fitxer
parades.py. La funció ha de passar el següent doctest i crear els fitxers'alim.txt'i'artes.txt', mostrats a sota.>>> dic = {'formatges': 'alimentació', 'cuir': 'artesania', ... 'embotits': 'alimentació', 'coques': 'alimentació', ... 'vestits': 'artesania', 'joieria': 'artesania'} >>> parades('paradistes.txt', 'alim.txt', 'artes.txt', dic, 5.1, 6.1)
Nota
Podeu descarregar el fitxer amb tests
parades.txti el fitxer d’exempleparadistes.txt.El contingut dels fitxers creats en la crida del doctest anterior hauria de ser:
'alim.txt' 'artes.txt' joan pera marta perez pepeta morales georgina pi jordi pons
Solucions
Disposeu de solucions al fitxer parades.py