Bonjour à la communauté des spécialistes Python !

Mon fils, qui étudie la gestion d'entreprise, a un examen d'Informatique qui porte entre autres sur du Python.

J'ai réussi à l'aider pour la majorité des codes, mais là je bloque sérieusement.

Voici l'énoncé :
Expliquez dans les grandes lignes le rôle du petit code Python qui suit et surtout ce que renverra la dernière fonction « select » si elle reçoit comme premier paramètre un nom de fichier « texte » et comme deuxième une liste de noms de fichier « texte ». L’instruction « line.lower().split() » renvoie une liste des mots en caractère minuscule compris dans la ligne. L’instruction « str=str.replace(‘a’,’b’) » renvoie la même chaine de caractères dans laquelle toutes les occurrences de la lettre ‘a’ son remplacées la lettre ‘b’.


Voici le code fourni par le prof (par écrit)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
stop=".,'"
 
def stopW(word):
    l=word
    for char in stop:
        l=l.replace(char,"")
    return l
 
def computeBOW(fileName):
W={}
    for line in open(fileName):
        for word in line.lower().split():
            word = stopW(word)
            if len(word) > 2:
                if word not in W:
                    W[word]=0
                W[word] = W[word] + 1
    return W
 
def PS(fn1, fn2):
    W1 = computeBOW(fn1)
    W2 = computeBOW(fn2)
    res = 0
    for x in W1:
        for y in W2:
            if (x==y):
                res=res+W1[x]*W2[y]
                break
    return res
 
 
def select(filename,filelist):
    min=0
    for f in filelist:
        dist=PS(filename,f)
        if dist > min:
            sel = f
            min = dist
    return sel
Voici mes questions :
- Que représente concrètement filelist ?
- Tel quel le programme donne des erreurs car les fichiers n'existent pas. Que puis-je faire faire tourner le programme ?

M E R C I beaucoup ...

ps : inutile de me dire que c'est tordu... on le sait ;-)