#Python : définir une fonction qui compte les mots d’une phrase

Bonan tagon al ĉiuj,

Hier soir, j’ai fait l’exercice 7.13 du livre de Gérard Swinnen Apprendre à programmer avec Python :

Définissez une fonction compteMots(ph) qui renvoie le nombre de mots contenus dans la phrase ph (On considère comme mots les ensembles de caractères inclus entre des espaces).

Je me suis dit que c’était facile mais curieusement, il m’a fallu du temps pour faire fonctionner mon programme correctement. J’ignore la raison pour laquelle j’ai autant pataugé. Je devais être un peu fatigué. Voici donc mon code avec mes commentaires. Il vous suffit de cliquer sur l’image pour l’agrandir :

exercice_7_13

Publicités

Auteur : Ordinosor

Bienvenue sur Miamondo, mon blog personnel. "Mia mondo", c'est de l'espéranto et ça signifie "Mon monde" en français. Je m'appelle Benoît alias Ordinosor, Français expatrié en Allemagne. Mes centres d'intérêt sont les distributions GNU/Linux, le langage de programmation Python, la science-fiction et l'espéranto.

2 réflexions sur « #Python : définir une fonction qui compte les mots d’une phrase »

  1. Bonjour,
    en regardant votre code on voit très vite qu’il s’agit d’une approche en C.

    Vous verrez qu’en apprenant les bases de python les fonctions natives (Built-in functions) et les méthodes associées à chaque type de données il y a des moyens beaucoup plus simples et efficaces.

    Un exemple avec la méthode str.split():

    ph = « J’adore le langage Python car c’est plus facile que le langage C »
    liste = ph.split( » « )
    split va retourner une liste de texte :
    [« J’adore », ‘le’, ‘langage’, ‘Python’, ‘car’, « c’est », ‘plus’, ‘facile’, ‘que’, ‘le’, ‘langage’, ‘C’]

    Un simple len() sur la liste va retourner le nombre de mots trouvés.

    On ne peut malheureusement pas splitter en une passe tous les séparateurs, il faut se tourner vers regex pour faire ça :

    import re
    len(re.split(« [ -‘] », ph)) # Retourne 14

    Et si on en reste aux méthodes str il suffit de convertir les séparateurs à l’aide de str.replace(old, new) en cascade puis de splitter, ou même à l’aide de str.translate.

    Pour tout savoir sur les manipulations string : https://docs.python.org/2/library/string.html

    Bonne lecture et bon apprentissage!

    Moi aussi je codais en C avant de tomber amoureux de python !

    Aimé par 1 personne

  2. Bonjour,

    Merci pour votre commentaire. Oui, j’apprends grâce à l’aide du livre de Gérard Swinnen et il me semble que cette approche en C fait partie de l’apprentissage. Il y a quelques jours, j’ai découvert la méthode split et je me suis souvenu de cet exercice. Je me suis alors fait la remarque que grâce à cette méthode, c’était bien plus facile d’arriver au résultat voulu.
    J’ai essayé d’apprendre le langage C il y a quelques années mais c’était bien trop difficile pour moi. Avec le langage Python, j’ai réellement le sentiment que je peux progresser même si je sais bien que je n’atteindrai jamais un niveau exceptionnel. Coder me procure tout de même un réel plaisir, particulièrement grâce au langage Python si abordable pour les débutants.
    Je ne dis pas qu’un jour, je n’essaierai pas de nouveau d’apprendre le langage C car il me semble qu’il permet aussi d’approfondir le fonctionnement d’un programme informatique. C’est un langage de bas niveau. Mais je veux d’abord bien maîtriser le langage Python dont la syntaxe est si claire. Je suis heureux de pouvoir discuter avec vous et je vous dis à bientôt sur le forum des développeurs.

    J'aime

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s