0
votes

Je ne peux pas dire pourquoi je reçois "TypeError: impossible de convertir" Int "objet à STR implicitement" erreur

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? XXX PRE>

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 commentaires

Veuillez toujours inclure le message d'erreur complet.


Changer pour i dans text_bonne: à pour i in gamme (len_body)):


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] , quel est le type de i et de word_length ? C'est quelque chose que vous pouvez déduire par la journalisation ( impression (type (i)) ) ou en comprenant la trace.


3 Réponses :


0
votes

La valeur de i dans pour i dans text_body: est le caractère suivant de text_body (une chaîne d'un caractère). Vous ne pouvez pas ajouter de numéro et une chaîne dans i + word_length . Vous devez parcourir les index: xxx

mieux encore, utilisez la fonction text_body.index .


0 commentaires

0
votes

Lorsque Python exécute xxx

dans la définition de recherche la valeur i prend chaque élément, au lieu de l'index et de Ainsi, i + word_length jette le typeError . Voici la solution, en utilisant la plage () au lieu de pour i dans text_bonnez . xxx


0 commentaires

1
votes

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)


0 commentaires