Répondre :
Bonjour
Puisque tu ne répondais pas en commentaires du devoir, j'ai pris la liberté de recommencer le code à partir de rien, comme si j'avais juste eut la consigne :)
On nous demande de créer une fonction qui compte le nombre d'occurrences de chaque caractère dans une phrase prise en paramètre.
Ce que je vais utiliser c'est un dictionnaire Python, celui-ci listera des couples "caractères" : occurrences.
En plus d'être plus simple que de passer par des boucles externes, cela va rendre la fonction ultra fonctionnelles puisqu'on pourra même, par exemple, compter le nombre d'occurrence d'un certain caractère.
MEMO - Dictionnaires Python
Les variables de type dictionnaire permettent de faire des sortes de listes grouppant des couples de données.
Un dictionnaire se définit comme
▌ dictionnaire = {'clef' : 'valeur', 'clef-2' : 'valeur-2', 'clef-3' : 'valeur-3'}
Pour accéder à une valeur d'un dictionnaire on donne la clef correspondante
▌ dictionnaire(clef)
Ce qui est très intéressant c'est qu'en définissant un nouveau dictionnaire, on peut écrire du code plus complexe qui permettra directement de faire une sorte de tri (comme une boucle for)
Réponses
- Ci joint le code commenté (2 variantes) et le rendu en console finale -
On définit une nouvelle fonction, appelée "occurence", qui prendra un argument, appelé "text"
▌ def occurrence(text):
On créé un dictionnaire, appelé "dicoOccurrence", le contenu du dico est expliqué après
▌ dicoOccurrence = {caractere : text.count(caractere) for caractere in text}
Donc ce qu'on fait c'est qu'on définit une première variable, qu'on a appelé "caractere" (pas d'accent, c'est une source de problème ^^) ce sera nos clefs d'entrée dans le dictionnaire.
Et après deux points : on introduit la seconde variable qui sera donc les valeurs de nos valeurs.
Pour ca, on utiliser la fonction .count(x) qui permet de compter le nombre d'occurrences dans une liste.
Et à la fin on ajouter une boucle for intégrée qui va permettre de faire nos identification clef : valeur pour chaque lettre de l'argument text introduit avec la fonction.
On finit par renvoyer le dictionnaire pour clore la fonction
▌ return dicoOccurrence
Avec ce code, on a plusieurs avantages:
On peut donc utiliser le texte qu'on veut.
Soit le définir quand on appelle la variable, comme :
▌ print(occurrence('Merci nosdevoirs.fr'))
Soit tu peux définir une variable "texte" (ou autre nom)
▌ phrase = 'Bonjour comment allez-vous ?'
▌ print(occurrence(phrase))
On peut compter chaque caractère
Imaginons que je veux compter le nombre d'occurrence du caractère "o", on peut facilement faire car le retour final de la fonction est un dictionnaire.
▌ print(occurrence('Merci nosdevoirs.fr')['o'])
Va nous donner
▌ >>> 2
Voilà, j'espère que mes réponses t'aurons aidé, les explications sont un peu plus chaotiques mais je ne sais pas ce que tu as déjà appris ou non en cours ^^'
Si tu as mal compris quelque chose ou besoin de plus d'explications tu peux me demander en commentaires !
Bonne après-midi ;)
Merci d'avoir visité notre site, qui traite de Informatique. Nous espérons que les informations partagées vous ont été utiles. N'hésitez pas à nous contacter si vous avez des questions ou besoin d'assistance. À très bientôt, et pensez à ajouter notre site à vos favoris !