Concurs¶
Desa les funcions següents al fitxer concurs.py.
En un concurs els participants s’enfronten dos a dos en una prova de manera que el que guanya intercanvia la seva posició a la classificació amb el que perd. Dissenya la funció
canvique donada una llista d’strings amb els noms dels participants ordenats segons la seva classificació i dos noms inclosos a la llista, modifica la llista de forma que els dos noms donats intercanvien la seva posició. Si algun dels dos noms no es troba a la llista no l’ha de modificar.La funció ha de passar els tests següents, com a mínim:
>>> noms = ['Pau', 'Anna', 'Pol', 'Joan', 'Maria'] >>> canvi (noms, 'Pol', 'Maria') >>> noms ['Pau', 'Anna', 'Maria', 'Joan', 'Pol'] >>> noms = ['Pau', 'Anna', 'Pol', 'Joan', 'Maria'] >>> canvi (noms, 'Pol', 'Roser') >>> noms ['Pau', 'Anna', 'Pol', 'Joan', 'Maria']
Nota
Pots descarregar el fitxer amb tests
test-concurs-1.txt.Dissenya la funció
actualitza_classifque donada una llista amb la classificació dels participants del concurs com a l’apartat anterior i una altra llista amb els resultats d’un enfrontament de dos concursants, modifica la llista de classificació segons el resultat de l’enfrontament. La segona llista sempre tindrà quatre elements, un string amb el nom d’un concursant, un enter amb la seva puntuació, un string amb el nom del segon i un altre enter amb la seva puntuació. El concursant guanyador és el que ha obtingut la puntuació més alta. Si el guanyador ja està per davant a la classificació o els participants han empatat, la funció no haurà de fer cap modificació. Aquesta funció ha de cridar a la funció de l’apartat anterior.La funció ha de passar els tests següents, com a mínim:
>>> noms = ['Pau', 'Anna', 'Pol', 'Joan', 'Maria'] >>> actualitza_classif (noms, ['Pol',10,'Maria',5]) >>> noms ['Pau', 'Anna', 'Pol', 'Joan', 'Maria'] >>> noms = ['Pau', 'Anna', 'Pol', 'Joan', 'Maria'] >>> actualitza_classif (noms, ['Pol',1,'Maria',10]) >>> noms ['Pau', 'Anna', 'Maria', 'Joan', 'Pol'] >>> noms = ['Pau', 'Anna', 'Maria', 'Joan', 'Pol'] >>> actualitza_classif (noms, ['Pol',10,'Maria',1]) >>> noms ['Pau', 'Anna', 'Pol', 'Joan', 'Maria'] >>> noms = ['Pau', 'Anna', 'Pol', 'Joan', 'Maria'] >>> actualitza_classif (noms, ['Pol',10,'Maria',10]) >>> noms ['Pau', 'Anna', 'Pol', 'Joan', 'Maria']
Nota
Pots descarregar el fitxer amb tests
test-concurs-2.txt.
Solució
El fitxer concurs.py conté una solució.