Je suis en train d'enseigner au codant tellement pardonnez-moi si la réponse est évidente ou que mon code est une épave. J'ai essayé de mettre ensemble un simple moteur de recherche qui compte le nombre de fois qu'un mot apparaît, mais je continue à obtenir le message d'erreur ci-dessus afin que je ne puisse même pas le tester. Toute idée de ce que je fais mal? Edit: excuses, le message d'erreur complet est ici: P> Traceback (most recent call last):
File "main.py", line 21, in <module>
final_count = search(text_body, phrase)
File "main.py", line 14, in search
if phrase == text_body[i:i+word_length]:
TypeError: Can't convert 'int' object to str implicitly
3 Réponses :
La valeur de mieux encore, utilisez la fonction i code> dans pour i dans text_body: code> est le caractère suivant de text_body code> (une chaîne d'un caractère). Vous ne pouvez pas ajouter de numéro et une chaîne dans i + word_length code>. Vous devez parcourir les index: text_body.index code>. P> p> P>
Lorsque Python exécute dans la définition de recherche code> la valeur i code> prend chaque élément, au lieu de l'index et de Ainsi, i + word_length code> jette le typeError code>. Voici la solution, en utilisant la plage () code> au lieu de pour i dans text_bonnez code>. P>
D'autres ont déjà donné une bonne explication sur la raison pour laquelle votre code se brise et une bonne solution, mais de démontrer cela, nous pouvons regarder un simple pour code> boucle: text_body.count(phrase)
Veuillez toujours inclure le message d'erreur complet.
Changer
pour i dans text_bonne: code> àpour i in gamme (len_body)): code>1) Le message d'erreur (AKA "Traceback" en Python) vous indiquera que le numéro de ligne jette un ajustement. 2) Dans
text_body [i: i + word_length] code>, quel est le type dei code> et deword_length code>? C'est quelque chose que vous pouvez déduire par la journalisation (impression (type (i)) code>) ou en comprenant la trace.