Exercice - niveau basique¶
On se propose d’écrire une fonction read_set qui construit un ensemble à partir du contenu d’un fichier. Voici par exemple un fichier d’entrée :
!cat data/setref1.txt4615
12
9228
6158
12
read_set va prendre en argument un nom de fichier (vous pouvez supposer qu’il existe), enlever les espaces éventuelles au début et à la fin de chaque ligne, et construire un ensemble de toutes les lignes ; par exemple :
from corrections.exo_read_set import exo_read_set
exo_read_set.example()# écrivez votre code ici
def read_set(filename):
"votre code"# vérifiez votre code ici
exo_read_set.correction(read_set)Deuxième partie - niveau basique¶
# la définition de l'exercice
from corrections.exo_read_set import exo_search_in_setCeci étant acquis, on veut écrire une deuxième fonction search_in_set qui prend en argument deux fichiers :
filename_referenceest le nom d’un fichier contenant des mots de référence ;filenameest le nom d’un fichier contenant des mots, dont on veut savoir s’ils sont ou non dans les références.
Pour cela search_in_set doit retourner une liste contenant, pour chaque ligne du fichier filename, et dans cet ordre, un tuple avec :
la ligne (sans les espaces de début et de fin, ni la fin de ligne) ;
un booléen qui indique si ce mot est présent dans les références ou pas.
Par exemple :
!cat data/setref1.txtThe history saving thread hit an unexpected error (OperationalError('attempt to write a readonly database')).History will not be written to the database.
4615
12
9228
6158
12
!cat data/setsample1.txt2048
8192
9228
2049
3
4
2053
2054
6158
4099
8
12
exo_search_in_set.example()# à vous
def search_in_set(filename_reference, filename):
"votre code"# vérifiez
exo_search_in_set.correction(search_in_set)