Sabateria¶
Les existències d’una sabateria es representen amb una llista d’articles corresponents a talles de sabates. Un article es representa amb una llista de dos enters que signifiquen, respectivament, la talla i el nombre de parells de sabates d’aquesta talla que hi ha a la sabateria. La llista d’articles no està ordenada segons cap criteri i cada talla hi apareix un sol cop com a màxim.
Dissenya la funció
sabateria1que a partir d’una llista d’articles i dues tallest1it2retorni la talla de la qual hi ha més parells de sabates d’entre les dues talles donades (ambdúes incloses). Si hi hagués més d’una talla que complís aquest requisit, cal retornar la primera que es trobi. Si no hi ha cap parell entre les talles donades o la llista donada és buida, la funció retornarà -1.Desa la funció al fitxer
sabateria1.py. La funció ha de passar el següent doctest:>>> llista =[[30, 4], [45, 5], [36, 8], [37, 12], [42, 6], [28, 11], [32, 8], [34, 9], [41, 4], [38, 6], [44, 7], [33, 8], [40, 5], [35, 7], [39, 12], [29, 9], [31, 5], [43, 12]] >>> sabateria1(llista, 35, 40) 37
Nota
Pots descarregar el fitxer amb tests
sabateria1.txtDissenya la funció
cerca_tallaque a partir d’una llista d’articles i un enter indicant una talla, retorni la posició a la llista d’articles de l’article corresponent a aquella talla. Si la talla no apareix a la llista d’articles, aquesta funció ha de retornar -1.Desa la funció al fitxer
sabateria2.py. La funció ha de passar el següent doctest:>>> stock =[[30, 4], [45, 5], [36, 8], [37, 12], [42, 6], [32, 8], \ ... [34, 9], [41, 4], [38, 6], [44, 7], [33, 8], [40, 5], [35, 7], [39, 12], \ ... [29, 9], [31, 5]] >>> cerca_talla (stock, 36) 2 >>> cerca_talla (stock, 41) 7 >>> cerca_talla (stock, 28) -1
Nota
Pots descarregar el fitxer amb tests per aquesta funció i les dues següents
sabateria2.txtDissenya la funció
modifica_tallaque a partir d’una llista d’articles, un enter indicant la posició d’un article i un altre enter indicant una quantitat de parells de sabates, modifiqui la llista de forma que l’article corresponent a la posició donada incrementi les seves unitats amb la quantitat donada.Desa la funció al mateix fitxer fitxer
sabateria2.py. La funció ha de passar el següent doctest:>>> stock =[[30, 4], [45, 5], [36, 8], [37, 12], [42, 6], [32, 8], \ ... [34, 9], [41, 4], [38, 6], [44, 7], [33, 8], [40, 5], [35, 7], [39, 12], \ ... [29, 9], [31, 5]] >>> modifica_talla (stock, 2, 1) >>> stock == [[30, 4], [45, 5], [36, 9], [37, 12], [42, 6], [32, 8], \ ... [34, 9], [41, 4], [38, 6], [44, 7], [33, 8], [40, 5], [35, 7], [39, 12],\ ... [29, 9], [31, 5]] True >>> modifica_talla (stock, 7, 4) >>> stock == [[30, 4], [45, 5], [36, 9], [37, 12], [42, 6], [32, 8], \ ... [34, 9], [41, 8], [38, 6], [44, 7], [33, 8], [40, 5], [35, 7], [39, 12], \ ... [29, 9], [31, 5]] True
Nota
Pots descarregar el fitxer amb tests per aquesta funció i les dues següents
sabateria3.txtDissenya la funció
modifica_stockque donada una llista d’articles corresponent a l’stock de la sabateria i una altra llista d’articles corresponent a entrades noves de sabates, actualitzi la primera amb els nous parells de la segona. Aquesta funcio ha de cridar les dues anteriors:cerca_tallaimodifica_talla.Desa la funció al mateix fitxer
sabateria2.py. La funció ha de passar el següent doctest:>>> stock =[[30, 4], [45, 5], [36, 8], [37, 12], [42, 6], [32, 8], \ ... [34, 9], [41, 4], [38, 6], [44, 7], [33, 8], [40, 5], [35, 7], [39, 12], \ ... [29, 9], [31, 5]] >>> entrades = [[36, 1], [37, 2], [28, 3], [32, 1], [41, 4], [43, 2]] >>> modifica_stock(stock, entrades) >>> stock == [[30, 4], [45, 5], [36, 9], [37, 14], [42, 6], [32, 9], \ ... [34, 9], [41, 8], [38, 6], [44, 7], [33, 8], [40, 5], [35, 7], [39, 12],\ ... [29, 9], [31, 5], [28, 3], [43, 2]] True
Nota
Pots descarregar el fitxer amb tests per aquesta funció i les dues següents
sabateria4.txt
Solucions
Disposeu de solucions als fitxers sabateria1.py i sabateria2.py