Alors j'ai appris Python depuis quelques mois maintenant et je me demandais comment j'aurais allusion à écrire une fonction qui comptera le nombre de fois qu'un mot se produit dans une phrase. J'apprécierais que quelqu'un puisse me donner une méthode étape par étape pour le faire. P>
7 Réponses :
Réponse rapide: Ça ne " t gérer le retrait de la ponctuation. Vous pouvez le faire en utilisant 'Certains string.split () code> scindera la chaîne sur WhitSpace (espaces, onglets et linefeeds) dans une liste de mots choses ish. Alors ['Certains', 'string']. Compte (élément) code> renvoie le nombre de fois élément code> se produit dans la liste. P> string.maketrans code> et str.translate code> . P > # Make collection of chars to keep (don't translate them)
import string
keep = string.lowercase + string.digits + string.whitespace
table = string.maketrans(keep, keep)
delete = ''.join(set(string.printable) - set(keep))
def count_occurrences(word, sentence):
return sentence.lower().translate(table, delete).split().count(word)
String.Translate est techniquement dans la section obsolète de la documentation, donc je me méfierais d'utiliser cette fonction comme habitude.
Vous avez raison - j'ai changé le texte pour faire référence à Str.Translate, qui est la façon la chance de le faire.
Wilberforce a la réponse rapide, correcte, et je vais donner la réponse longue "Comment arriver à cette conclusion".
Premier, voici quelques outils pour vous aider à démarrer et quelques questions que vous devez poser vous-même. P>
Vous devez lire la section sur Types de séquence , dans les documents Python, car c'est votre meilleur ami de résoudre ce problème. Sérieusement, lisez-le. Une fois que vous avez lu cela, vous devriez avoir des idées. Par exemple, vous pouvez prendre une longue chaîne et le casser en utilisant la fonction Split (). Pour être explicite: p> prend la chaîne d'entrée et le scindre sur n'importe quel espace blanche et vous donnera: p> Notez maintenant ici que vous avez la période toujours à la fin de la deuxième «phrase». Ceci est un problème parce que la «phrase» n'est pas la même que «phrase». Si vous allez dépasser votre liste et compter les mots, vous devez vous assurer que les chaînes sont identiques. Vous devrez peut-être trouver et supprimer une certaine ponctuation. P> une approche navey à cela pourrait être: p> pour me faire passer une phrase de moins: "This sentence is a simple sentence"
Cela répond à ce nombre de mots dans cette phrase? ", Mais pas" Combien de fois ce mot se produit-il dans cette phrase? ". :)
Oh dang. Échec de la lecture. Fixation.
Vous pouvez le faire comme ceci: puis appelant la chaîne: p> retournera: Nombre de fois "Word" est: 2 code> p> p>
def check_search_wordcount (mySearchstr, mysencence):
Seule la publication du code sans explication n'est pas très utile pour la personne qui a demandé.
Salut, c'est simple ... Step1) Prenez la longueur totale de la chaîne - "len_mysentence" Step2) Prenez la longueur de la chaîne sans mot de recherche - "len_sentenence_without_finind_word" Step3) Soustraction des deux longueurs - "len_remaining_sentence" Step4) finalement diviser len_remaine_sentence avec la longueur de mot de recherche ........
La manière la plus simple:
Je suppose que vous savez simplement sur Python String et pour la boucle.
def count_occurences(s,word):
count = 0
for i in range(len(s)):
if s[i:i+len(word)] == word:
count += 1
return count
mystring = "This sentence is a simple sentence."
myword = "sentence"
print(count_occurences(mystring,myword))
C'est inutilement compliqué cependant.
text=input("Enter your sentence:")
print("'the' appears", text.count("the"),"times")
simplest way to do it
http://stackoverflow.com/search?q=[pyTHON]+Count+wor DS a >
Définir "phrase" et "mot". En outre, si vous apprenez depuis quelques mois, vous devriez être capable de Démarrer i> (pas nécessairement finir, mais essayez-le) écrire une fonction sur votre propre ...