Bonjour, j'aurai très fortement besoin d'aide sur mon exercice. Je ne n'arrive à rien et trop compliqué pour mon niveau en programmation, c'est même impossible pour moi. J'aurai donc vivement besoin d'aide s'il vous plait. merci
Voici mon exercice.
Créer un générateur de texte de longueur choisie par l’utilisateur. Créer un générateur de phrase en coupant le
texte précédent de manière aléatoire en un nombre de phrases aléatoires. Chaque phrase contient entre 8 et 30 mots.
Chaque phrase commence par une majuscule et termine par un point. Si la longueur de phrase est supérieure à 25 mots,
la phrase devra avoir une virgule aléatoire entre les mots 8 et 18 et le second mot de la proposition juxtaposée devra être
conjugué aléatoirement. Chaque mot comporte entre 1 et 10 lettres. Comme les lettres ne se rencontrent pas toutes avec
la même fréquence (le ‘e’ est très fréquent par exemple), vous utiliserez l’alphabet suivant :
Si c'est un exercice, c'est que tu as eu des cours. Si tu as des cours, on a besoin de connaître le cadre d'utilisations technique a abordé avec toi.
Si je te parle d'un module comme textwrap par exemple, je ne suis pas certains que tu es le droit de l'utiliser, si ?
Je te conseille aussi de travailler par étapes, et si tu connais les fonctions en python, on peut dire qu'une étape c'est une fonction... Une fonction est une action, il faut donc la nommer par un verbe en anglais ou en français (de préférence en anglais) selon dont tu es le plus à l'aise.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
> Créer un générateur de texte de longueur choisie par l’utilisateur. Déjà ce n'est pas clair. Le texte doit-il avoir du sens? Chose certaine, tu auras besoin de fonctions qui génèrent ou obtiennent des objets de façon aléatoire. Il serait souhaitable que tu saches bien gérer les listes et sans doute les dictionnaires. Et comme l'a dit fred1599, il faudrait connaître les fonctions.
Le Tout est souvent plus grand que la somme de ses parties.
> Créer un générateur de texte de longueur choisie par l’utilisateur. Déjà ce n'est pas clair. Le texte doit-il avoir du sens? Chose certaine, tu auras besoin de fonctions qui génèrent ou obtiennent des objets de façon aléatoire. Il serait souhaitable que tu saches bien gérer les listes et sans doute les dictionnaires. Et comme l'a dit fred1599, il faudrait connaître les fonctions.
bonjour, non le texte ne doit pas avoir de sens. Le problème c'est que j'ai un niveau assez médiocre en programmation. Je ne sais pas faire de fonction qui génère quelque chose. Je ne sais presque rien faire en programmation.
Hmmm ça risque d'être compliqué ... Qu'est-ce que tu connais déjà du Python? Ça te prend en partant quelque chose pour obtenir des caractères au hasard. donc le module random Minimalement, il faudrait savoir gérer un peu les listes et les boucles for ou whiele
Le Tout est souvent plus grand que la somme de ses parties.
J'aime bien utiliser les fonctions pour montrer les étapes de résolution et éviter les tâches répétitives, mais dans ce problème, il n'est pas nécessaire de faire des fonctions. Par contre il faudra bien s'organiser...
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
J'aime bien utiliser les fonctions pour montrer les étapes de résolution et éviter les tâches répétitives, mais dans ce problème, il n'est pas nécessaire de faire des fonctions. Par contre il faudra bien s'organiser...
C'est toujours plus propre de faire des fonctions. Tout mettre dans le main c'est vraiment sale.
Ici, deux/trois fonctions à mon avis s'imposent : generer_phrase(long_min, long_max), generer_mot(long_min, long_max) et conjuguer_mot. Cela permet de bien dissocier la génération proprement dite de la conjugaison et permet d'y revenir si besoin après coup.
@Nephthys: On est tous d'accord avec le fait de créer des fonctions. Alors, on renvoie le PO à ses cours, ou on essaie d'avancer? @Maxime214: N'essaies pas de tout faire d'un seul coup. Fais une étape à la fois. Et quand elle fonctionne, passe à l'étape suivante.
Le Tout est souvent plus grand que la somme de ses parties.
C'est toujours plus propre de faire des fonctions. Tout mettre dans le main c'est vraiment sale.
Qui a dit le contraire ? Regarde ma 1ère réponse...
Le fait que se soit sale, n'annonce pas au PO que ce n'est pas possible. Et si on lit sa réponse, il y a de fortes chances que cette partie ne soit pas vue en cours.
Alors, sans fonction, c'est possible ? Je dis juste, oui c'est possible, ce qui implique la non nécessité pour cet exercice d'avoir à utiliser des fonctions.
Mais le 1er à avoir conseillé les fonctions, c'est celui qui t'écris actuellement, et je connais très bien l'intérêt de la fonction, on fait avec ce qu'on a...
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Pour avancer, Je ferais les choses dans cet ordre:
Générer un texte d'une certaine longueur et choisissant au hasard des lettres dans la liste alphabet avec une fonction generer_texte(nb_lettres) et à la fin un return texte (texte contiendra la suite de lettres générée)
Ensuite à partir de là, générer aléatoirement des espaces de façon avoir des mots de longueur 1 à 10.
Ensuite, mettre un point aléatoirement de façon avoir entre 8 et 30 mots.
Ensuite placer une virgules entre le mot 8 et 18 (au hasard) si la phrase fait plus de 25 mots
Ensuite, mettre en majuscule la première lettre de chaque phrase.
Enfin (pour la génération), ajouter la conjugaison aléatoire sur le 2nd mot après un point ou une virgule.
Ce n'est pas si compliqqué après tout. Je n'ai pas inclus la vérification des pronoms. (faire un copier-coller pour retrouver l'indentation) - from random import * nbWords = 1000 # Nombre de mots # Alphabet récupéré du message et converti. alphabet = 'aaaaaaabcccdddeeeeeeeeeeeefghiiiiiiijklllllmmmnnnnnnoooooppqrrrrrrsssssssttttttuuuuvwxyz' # Liste des terminaisons (n-tuple) terminaison = ("e", "es", "ons", "ez", "ent", "is", "it", "issons", "issez", "issent", "ds", "d", " ts", "t", "tons", "tez", "tent", "s", "t", "ons", "ez", "ent", "eins", "eint", "eignons", "eignez", "eignent", "ains", "aint", "aignons", "aignez", "aignent", "oins", "oint", "oignons", "oignez", "oignent")
# On génère une liste de mots words = [] for _ in range(nbWords): # choices retourne une liste de 1 à 10 caractères (avec randint). join les colle pour faire une chaîne word = ''.join(choices(alphabet, k=randint(1, 10))) words.append(word) # j'ajoute à ma liste de mots # Générer une liste de liste, chaque élément est une phrase liste = [] next = 0 while next < nbWords: last = min(nbWords, next + randint(8, 30)) if last-next > 1: liste.append(words[next:last]) next = last # On modifie chaque phrase texte = [] for phrase in liste: phrase[0] = phrase[0][0].upper() + phrase[0][1:] phrase[-1] += '.' phrase[1] += choice(terminaison) if len(phrase) > 25: phrase[randint(8, 18) - 1] += ',' phrase = ' '.join(phrase) # faire une chaîne de cette liste texte.append(phrase)
print(*texte, sep='\n')
Le Tout est souvent plus grand que la somme de ses parties.
Ce n'est pas si compliqqué après tout. Je n'ai pas inclus la vérification des pronoms. (faire un copier-coller pour retrouver l'indentation) - from random import * nbWords = 1000 # Nombre de mots # Alphabet récupéré du message et converti. alphabet = 'aaaaaaabcccdddeeeeeeeeeeeefghiiiiiiijklllllmmmnnnnnnoooooppqrrrrrrsssssssttttttuuuuvwxyz' # Liste des terminaisons (n-tuple) terminaison = ("e", "es", "ons", "ez", "ent", "is", "it", "issons", "issez", "issent", "ds", "d", " ts", "t", "tons", "tez", "tent", "s", "t", "ons", "ez", "ent", "eins", "eint", "eignons", "eignez", "eignent", "ains", "aint", "aignons", "aignez", "aignent", "oins", "oint", "oignons", "oignez", "oignent")
# On génère une liste de mots words = [] for _ in range(nbWords): # choices retourne une liste de 1 à 10 caractères (avec randint). join les colle pour faire une chaîne word = ''.join(choices(alphabet, k=randint(1, 10))) words.append(word) # j'ajoute à ma liste de mots # Générer une liste de liste, chaque élément est une phrase liste = [] next = 0 while next < nbWords: last = min(nbWords, next + randint(8, 30)) if last-next > 1: liste.append(words[next:last]) next = last # On modifie chaque phrase texte = [] for phrase in liste: phrase[0] = phrase[0][0].upper() + phrase[0][1:] phrase[-1] += '.' phrase[1] += choice(terminaison) if len(phrase) > 25: phrase[randint(8, 18) - 1] += ',' phrase = ' '.join(phrase) # faire une chaîne de cette liste texte.append(phrase)
print(*texte, sep='\n')
Merci à tous pour vos conseilles vraiment. M.Pierrotlefou vous êtes vraiment un fou, un crack, el fenomeno, un homme de goût. je vous remercie vous venez de sauvez mon bac merci milles fois. C'est vous le MVP aujourd'hui, si vous êtes croyant que dieu vous bénisse. Je n'aurai jamais pu le faire moi-même c'est une certitude. Même si il n'y a pas les pronoms c'est vraiment beaucoup merci. Encore merci
Je le fais vite sans test: pronoms = ... ta liste de pronoms pronoms = {k: 0 for k in pronoms} # Transformer une liste endictionnaire for word in words: if word in pronoms.keys(): pronoms[word] += 1 Tu peux afficher le dictionnaire complet ou seulement les items où la valeur est non nulle. J'ai l'impression qu'il y en aura très peu ...
Le Tout est souvent plus grand que la somme de ses parties.
Je n'aurai jamais pu le faire moi-même c'est une certitude.
Alors on vous donnes des exercices impossibles à faire ? C'est nouveau dans le monde de l'enseignement, avant on s'en sortait avec les cours donnés par le professeur.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Je n'aurai jamais pu le faire moi-même c'est une certitude.
Alors on vous donnes des exercices impossibles à faire ? C'est nouveau dans le monde de l'enseignement, avant on s'en sortait avec les cours donnés par le professeur.
Nous n'avons pas tous le même niveau en programmation dans ma classe. Et cela s'explique dû fait que nous n'avons pas eu le même prof l'année dernière. Je suis tombé sur un prof qui ne faisait rien, par rapport aux autres classes. Et cette différence on l'a voit en classe tout ceux qui n'étaient pas dans ma classe l'an dernier, ont tous un meilleur niveau que ceux qui étaient dans ma classe. Entre l'année dernière et cette année, il y a eu un gouffre énorme dans le programme scolaire en informatique dans mon apprentissage par rapport aux élèves d'autres classe. C'est pour ça que je dis que c'est impossible pour moi, et je connais très bien mes capacités en programmation.
Ok, avec tout ce qui se passe actuellement, c'est encore moins simple...
Si tu as besoin de comprendre ce qu'à fait @PierrotLeFou, je te conseille ce livre en pdf et gratuit : Swinnen
Il est plutôt pas mal côté explications, et des exercices peuvent te permettre la maîtrise tranquillement des bases du langage.
Après je te dis pas que ça sera pas dans la douleur certaines fois, mais le plus dur, c'est commencer, une fois parti, tu trouveras ça plus sympa.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
@fred1599: > Je n'aurai jamais pu le faire moi-même c'est une certitude. Tu as oublié le ...
Le Tout est souvent plus grand que la somme de ses parties.
Générer un texte aléatoire
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Le Tout est souvent plus grand que la somme de ses parties.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Le Tout est souvent plus grand que la somme de ses parties.