|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() alban Inscription : décembre 2012 Messages : 6 ![]() |
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. |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Christian HavardDéveloppeur informatique Inscription : mai 2011 Messages : 103 ![]() |
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 |
|
|
00
|
|
|
#3 | ||||
|
Membre habitué
![]() ![]() anciennement "sopsag" Inscription : février 2011 Messages : 120 ![]() |
Tu codes en python mec
! et pas en basic... Alors les trucs du genre Code :
En python, c'est la fête ! Code :
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 64 / Visual 2010 / Python 2.7 / Eclipse |
||||
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Christian HavardDéveloppeur informatique Inscription : mai 2011 Messages : 103 ![]() |
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. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() alban Inscription : décembre 2012 Messages : 6 ![]() |
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. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com