Fòrums¶
Disposem d’un fitxer amb les estadístiques d’accés a un fòrum on cada
línia representa un usuari i està formada pel nom de l’usuari, el
nombre d’entrades al fòrum, el nombre de missatges llegits i el nombre
de comentaris enviats, en aquest ordre i separats per un punt i
coma. Com exemple podeu usar el fitxer dades_forum.txt amb el contingut següent:
santpere;127;57;8 hackerx;32;2;0 rose;345;764;87 anneta;543;983;12 rllul;2;2;0 apolitic;322;345;32 nini;2372;7533;674 fonaments;372;1372;0
Dissenya la funció
no_opinaque donat el nom d’un fitxer amb el format descrit, retorni una llista amb els noms dels usuaris que no han fet cap comentari.Desa la funció al fitxer
forum.py. La funció ha de passar el següent doctest:>>> lusuaris = ['santpere;127;57;8', 'hackerx;32;2;0', 'rose;345;764;87', ... 'anneta;543;983;12', 'rllul;2;2;0', 'apolitic;322;345;32', ... 'nini;2372;7533;674', 'fonaments;372;1372;0'] >>> with open('dades_forum.txt', 'w') as f: ... for e in lusuaris: ... a = f.write (e+'\n') >>> no_opina ('dades_forum.txt') ['hackerx', 'rllul', 'fonaments']
Nota
Pots descarregar el fitxer amb tests
no_opina.txtHi ha hagut un problema durant el procés de registre d’usuaris on es necessari que els noms d’usuari tinguin com a mínim 6 caràcters i es vol conèixer si hi ha errors. Dissenya la funció
nom_erronique donat el nom d’un fitxer com el descrit anteriorment, retornaTruesi existeix algun nom d’usuari de menys de 6 caràcters iFalseen cas contrari.Desa la funció al fitxer
forum.py. La funció ha de passar el següent doctest:>>> lusuaris = ['santpere;127;57;8', 'hackerx;32;2;0', 'rose;345;764;87', ... 'anneta;543;983;12', 'rllul;2;2;0', 'apolitic;322;345;32', ... 'nini;2372;7533;674', 'fonaments;372;1372;0'] >>> with open('dades_forum.txt', 'w') as f: ... for e in lusuaris: ... a = f.write (e+'\n') >>> nom_erroni ('dades_forum.txt') True
Nota
Pots descarregar el fitxer amb tests
nom_erroni.txtDissenya la funció
entradesque donat el nom d’un fitxer com el descrit anteriorment, el nom d’un altre fitxer i un enter, escrigui al segon fitxer aquells usuaris que hagin fet un nombre d’entrades al fòrum més gran o igual a l’enter donat. Al fitxer creat cada usuari ocupa una línia on hi ha el nom i el nombre d’entrades d’aquell usuari separats per un espai en blanc.Amb el fitxer de dades
dades_forum.txt, indicat a l’inici, s’ha de crear un fitxer amb el contingut següent:anneta 543 nini 2372
Desa la funció al fitxer
forum.py. La funció ha de passar el següent doctest:>>> lusuaris = ['santpere;127;57;8', 'hackerx;32;2;0', 'rose;345;764;87', ... 'anneta;543;983;12', 'rllul;2;2;0', 'apolitic;322;345;32', ... 'nini;2372;7533;674', 'fonaments;372;1372;0'] >>> with open('dades_forum.txt', 'w') as f: ... for e in lusuaris: ... a = f.write (e+'\n') >>> entrades ('dades_forum.txt', 'visitants.txt', 500) >>> with open('visitants.txt', 'r') as f: ... t = f.read() >>> t 'anneta 543\nnini 2372\n'
Nota
Pots descarregar el fitxer amb tests
entrades.txt
Solució
Disposeu de solucions al fitxer forum.py