IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

extraire des mots d'une phrase


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 10
    Points : 8
    Points
    8
    Par défaut extraire des mots d'une phrase
    Bonjour à tous,

    je suis en train d'apprendre python et je suis bloqué par un exercice trouvé dans:
    Apprendre à programmer avec Python 3 de Gérard Swinnen.

    exercice 7.13
    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.

    J'ai commencé d'écrire un truc du genre:
    ch, new_ch = "zorglub", ""
    tt = [] # liste vide
    i = 0
    chain = input("Enter a sentence: ")
    while i < len(chain):
    if ch != " ": # J'AI L'IMPRESSION QUE MON PB VIENT DE LA !!!
    new_ch = new_ch + chain[i]
    i += 1
    tt.append(new_ch)

    print(tt)

    tt: ['e', 'ex', 'exa', 'exam', 'examp', 'exampl', 'example', 'example ', 'example d', 'example de', 'example de ', 'example de p', 'example de ph', 'example de phr', 'example de phra', 'example de phras', 'example de phrase']

    Je n'arrive pas à définir comment arrêter le script à chaque espace !

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 180
    Points : 321
    Points
    321
    Par défaut
    Bonjour,

    Un conseil, place toujours ton code à l'intérieur des balises prévues
    à cet effet (le bouton ressemble) à #

    Cela étant, ton problème se résume à éclater la chaîne de caractère
    en fonction en liste de mots et à utiliser la méthode len sur ladite liste.

    Dans votre code ch reste constant (zorglub) donc cele ne saurait marcher.
    Il faudrait au minimum y affecter chain[i].

    De plus la détection d'un espace est une condition de rupture partielle mais non
    d'arrêt du script. Autrement dit, chaque fois que tu en détecte un tu dois ajouter ton mot courant à la liste en cours et puis le réinitialiser.

    Un autre conseil, au lieu de taper ton code directement, écrit ce qu'il doit faire, étape par étape, sur une feuille de papier (ou un éditeur de texte).
    Comme ça, tu te concentre d'abord sur ta logique, indépendamment de tout langage de programmation.

    Bon courage

  3. #3
    Membre confirmé
    Avatar de Captain'Flam
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 273
    Points : 455
    Points
    455
    Billets dans le blog
    1
    Par défaut
    Tu codes en python mec !
    et pas en basic...

    Alors les trucs du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    i = 0
    while i < len( text ):
      fait_un_truc_avec( text[i] )
      i += 1
    tu oublies !
    En python, c'est la fête !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for c in text :
      fait_un_truc_avec( c )
    Par ailleurs, pour ton problème, regarde un peu ici !
    Et garde l'URL sous le coude : que l'on commence python ou que l'on baigne dedans depuis des années, on y revient toujours...
    Captain'Flam
    anciennement Sopsag, aka Hadrien
    Win seven x64 & Win 10 / Visual 2017 / Python 2.7 / Eclipse

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 180
    Points : 321
    Points
    321
    Par défaut
    Bonjour et bien vu, Captain'Flam !

    J'ai quand même l'impression que le but de l'exercice est de faire utiliser boucles et tests à l'étudiant afin de résoudre un petit problème très courant. Ce n'est qu'après qu'il découvrira que python dispose de méthodes toutes faites. Cela étant, je préfère aussi la boucle for au while dans ce cas-ci. Le while présente un risque potentiel de boucle infinie.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    merci de vos réponses !
    Captain'Flam: je vais regarder ton lien attentivement, il y a pleins de méthodes utiles. Au fait je n'ai jamais programmé avant .... ni en basic ni en rien d'ailleurs ! c'est la première fois que je mets les mains dans le cambouis !!

    Je suis du même avis que chticricri, je crois que le but de l'exercice est de se familiariser avec les boucles et les conditions donc je vais quand même essayer de coller à cet esprit.

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/04/2019, 09h45
  2. Comment extraire des mots dans une phrase (chaine de characteres)
    Par gilles06 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/07/2008, 18h54
  3. [Tableaux] Extraire des mots d'une chaine de caractères
    Par pratiquement dans le forum Langage
    Réponses: 5
    Dernier message: 24/01/2008, 09h20
  4. Extraire les mots d'une phrase
    Par SilkyRoad dans le forum Contribuez
    Réponses: 1
    Dernier message: 24/08/2007, 17h06
  5. [RegEx] supprimer des mots dans une phrase
    Par anarchoi dans le forum Langage
    Réponses: 6
    Dernier message: 10/05/2007, 09h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo