Accueil > Forum > > > > Fichiers
Fichiers
jeudi 21 mai 2009 à 15:57:33 |
Fichiers

Yofure
|
Bien le bonjour à tous.
Je suis débutant en programmation (et nouveau sur le forum ^^).
Je voudrais créer un programme qui teste toutes les permutations possibles entre des lettres données et qui en tire les mots existants dans la langue française, ou au moins qui teste jusqu'à en tirer au moins un mot français.
Ainsi, j'avais l'idée de mettre chaque lettre dans une série de variables 1, de donner un nombre aléatoire à une autre série variables 2, de ranger les variables deux dans l'ordre croissant, de faire aller de paire la variable 2a avec la variable 1a, etc, pour obtenir un mot. Ensuite le mot serait testé, pour voir s'il n'existe pas déjà dans une liste des mots créés auparavant, si il a déjà été "fabriqué", on recommence l'opération, et s'il ne l'a pas encore été, on l'ajoute à la liste des mots créés et on essaie de voir s'il existe dans une liste de mots français existants.
Pour obtenir cette liste de mots existants, j'ai téléchargé une liste de 22xxx mots (me semble-t-il) au format .txt, liste que j'avais vue conseillée dans un code posté sur ce site, pour un jeu du pendu. Seulement voilà, je n'ai encore jamais utilisé de fichiers, j'ai regardé un peu dans mon "cours" (celui de G. Swinnen)... Mais je ne sais pas comment faire pour apporter les 22000 mots à tester dans le programme sans le faire buguer... De même, le nombre de permutations possibles entre les lettres est plutôt très grand, la liste des mots déjà créés grossit vite et en arrive très vite à faire buguer le programme.
Ainsi, je me présente sur ce forum pour obtenir les conseils de personnes plus expérimentées que moi qui pourront (je l'espère) m'aider. Je vous pose donc les deux questions qui suivent :
- Poursuivant le but que je poursuis, ma méthode est-elle vraiment bonne et réalisable, ou voyiez vous un moyen plus ingénieux ?
- Pourriez vous m'éclairer sur la façon dont je peux apporter mes 22xxx mots dans mon programme , puisque lorsque j'utilise la fonction readlines(), ça a vite fait de buguer ?
Merci d'avance. :)
|
|
dimanche 31 mai 2009 à 16:44:35 |
Re : Fichiers

gaulthier
|
Pour la permutation, je n'ai pas tout a fait compris la méthode que tu utilises !
Pour la recherche dans le fichier, fait la a la fin des permutations en faisant un truc du genre: lst_mot_ok = [] fichier = open(nom_du_fichier, 'r') for mot in fichier: if mot in lst_permutation: lst_mot_ok.append(mot)
je ne sais pas si cette méthode sera rapide mais elle sera toujours mieux que readlines()
|
|
mercredi 3 juin 2009 à 20:01:32 |
Re : Fichiers

Yofure
|
Re-bien le bonjour à tous. N'ayant pas été forcément très clair dans l'explication de la méthode que j'envisageais, je n'ai pas été forcément compris. Cependant, j'ai pu trouver réponses à mes questions, et mettre debout un programme que voici (plus ou moins commenté) : # Importation de modules de fonctions et de fonctions : import os # Fonctions de communication avec le système d'exploitation import random # Fonction de création d'un nombre aléatoire # Définition des variables, listes, etc... nécessaires : liMotsCrees = [] # Indication du répertoire courant (pour l'ouverture de la liste de mots) rep_cour = os.getcwd() print "Le répertoire courant est :", rep_cour # Ouverture de la liste de mots dans une variable obFichier = open('listeFrancais.txt','r') listeFrancais = obFichier.read() obFichier.close() # Entrée des lettres par l'utilisateur : l1 = raw_input('Entrez la première lettre : ') l2 = raw_input('Entrez la deuxième lettre : ') l3 = raw_input('Entrez la troisième lettre : ') l4 = raw_input('Entrez la quatrième lettre : ') l5 = raw_input('Entrez la cinquième lettre : ') l6 = raw_input('Entrez la sixième lettre : ') l7 = raw_input('Entrez la septième lettre : ') l8 = raw_input('Entrez la huitième lettre : ') # Boucle principale : while len(liMotsCrees) <= 20160 : # Se fait autant de fois que le nombre combinaisons possibles nbL1 = random.randint(1, 100) nbL2 = random.randint(1, 100) nbL3 = random.randint(1, 100) nbL4 = random.randint(1, 100) nbL5 = random.randint(1, 100) # Génération de chiffres aléatoires nbL6 = random.randint(1, 100) nbL7 = random.randint(1, 100) nbL8 = random.randint(1, 100) #Définition des compteurs et chaînes de lettres nécessaires à la boucle : compteur1 = 0 compteur2 = 0 motCree = '' motTeste = '' while compteur1 <= (100) : # Création des combinaisons if nbL1 == compteur1 : motCree += l1 if nbL2 == compteur1 : motCree += l2 if nbL3 == compteur1 : motCree += l3 if nbL4 == compteur1 : motCree += l4 if nbL5 == compteur1 : motCree += l5 if nbL6 == compteur1 : motCree += l6 if nbL7 == compteur1 : motCree += l7 if nbL8 == compteur1 : motCree += l8 compteur1 += 1 if motCree not in liMotsCrees : # Ajout de la combinaison à la liste des combinaisons déjà faites liMotsCrees.append(motCree) while compteur2 < len(listeFrancais) : if listeFrancais[compteur2] != """ """: motTeste += listeFrancais[compteur2] compteur2 += 1 elif listeFrancais[compteur2] == 'a' : listeFrancais[compteur2] = 'A' elif listeFrancais[compteur2] == 'b' : listeFrancais[compteur2] = 'B' elif listeFrancais[compteur2] == 'c' : listeFrancais[compteur2] = 'C' elif listeFrancais[compteur2] == 'd' : listeFrancais[compteur2] = 'D' elif listeFrancais[compteur2] == 'e' : listeFrancais[compteur2] = 'E' elif listeFrancais[compteur2] == 'f' : listeFrancais[compteur2] = 'F' elif listeFrancais[compteur2] == 'g' : listeFrancais[compteur2] = 'G' elif listeFrancais[compteur2] == 'h' : listeFrancais[compteur2] = 'H' elif listeFrancais[compteur2] == 'i' : listeFrancais[compteur2] = 'I' elif listeFrancais[compteur2] == 'j' : listeFrancais[compteur2] = 'J' elif listeFrancais[compteur2] == 'k' : listeFrancais[compteur2] = 'K' elif listeFrancais[compteur2] == 'l' : listeFrancais[compteur2] = 'L' elif listeFrancais[compteur2] == 'm' : listeFrancais[compteur2] = 'M' elif listeFrancais[compteur2] == 'n' : listeFrancais[compteur2] = 'N' elif listeFrancais[compteur2] == 'o' : listeFrancais[compteur2] = 'O' elif listeFrancais[compteur2] == 'p' : listeFrancais[compteur2] = 'P' elif listeFrancais[compteur2] == 'q' : listeFrancais[compteur2] = 'Q' elif listeFrancais[compteur2] == 'r' : listeFrancais[compteur2] = 'R' elif listeFrancais[compteur2] == 's' : listeFrancais[compteur2] = 'S' elif listeFrancais[compteur2] == 't' : listeFrancais[compteur2] = 'T' elif listeFrancais[compteur2] == 'u' : listeFrancais[compteur2] = 'U' elif listeFrancais[compteur2] == 'v' : listeFrancais[compteur2] = 'V' elif listeFrancais[compteur2] == 'w' : listeFrancais[compteur2] = 'W' elif listeFrancais[compteur2] == 'x' : listeFrancais[compteur2] = 'X' elif listeFrancais[compteur2] == 'y' : listeFrancais[compteur2] = 'Y' elif listeFrancais[compteur2] == 'z' : listeFrancais[compteur2] = 'Z' elif listeFrancais[compteur2] == """ """: compteur2 += 1 if motCree == motTeste : print motTeste Walà... Cepdant, ma méthode est horriblement loin d'être géniale, primo parceque je ne suis pas du tout sûr que le mot recherché soit dans ma liste de mots importée, et surtout secondo parceque ma boucle de 20160 mots fait planter la chose... Si quelqu'un a une idée plus ingénieuse, donc... Merci =)
|
|
Cette discussion est classée dans : programme, liste, fichiers, mots, existants
Répondre à ce message
Sujets en rapport avec ce message
Liste des applications Windows [ par aera group ]
Bonjour,Je cherche à savoir s'il excise un sous programme de Windows qui renvoi la liste des applications ouvertes actuellement. Par exemple, si j'ai
lister les fichiers d'un dossier [ par killroy988 ]
Bonjour, je vous écris car je suis débutant en Python et j'aimerais réaliser un petit programme pour m'entrainer à la base et aux fichiers...J'ai malh
Parcourir sa BDR [ par skools ]
Bonjour à tousVoilà: je suis loin d'être un pro en programmation, et encore moins en manipulations diverses sur la base de registre, et pourtant, je c
Débutant [ par Ombitious_Developper ]
Salut Tous :J'ai la curiosité de connaître le langage Python. J'ai quelques questions :1. Est ce que Python est interprété ou compilé?2. Quels outils
uploader un fichier [ par amina22 ]
bonjour,je suis entrain de programmer une application qui se resume a une interface qui me permet d'uploader des fichiers(audio,vidéo,image...) et d
script pour désinstaller/installer programme [ par Roro8883 ]
Bonjour à tous !Est-il possible de créer un script (en pyhton, ou autre langage) qui permette de désinstaller un programme ? et d'en installer un ?En
appel de methode entre 2 fichiers [ par areuh ]
Bonsoir,Voilà, j'ai 2 fichiers .py représentant chacun une classe- le 1° est la gui (interface graphique avec Frame, Button, etc)- le 2° est un objet
Définir une liste de string [ par Mr.X ]
Mon problème est que dans ma classe une fonction execute une instruction du type : self.lst[i] = bufferet python me renvoi que self.lst n'est pas défi
Liste des applications ouvertes ? [ par budhax ]
Sous MS Windows, comment obtenir (dans la console de sortie) la liste des applications ouvertes (celles ayant un bouton dans la barre des taches).Une
Liste le contenu d'un répertoire [ par MHI ]
Le code suivant me génére un fichier vide, alors que mon répertoire contient bien un répertoire et 3 fichiers :import osimport dircachefic = open('Lis
Livres en rapport
|
Derniers Blogs
FAIRE APPARAITRE L'ONGLET 'DéVELOPPEUR' DANS OFFICE 2010FAIRE APPARAITRE L'ONGLET 'DéVELOPPEUR' DANS OFFICE 2010 par neodante
La nouvelle interface d'Office 2010 à amener quelques modifications par rapport à celle de 2007. Certes mineures, ces modifications ont fait disparaître la case à cocher de l'onglet 'Développeur' en première page du panneau du 'bouton Office' (dans Office...
Cliquez pour lire la suite de l'article par neodante [ASTUCE] PATCH POUR MICROSOFT FORUMS NNTP BRIDGE V1[ASTUCE] PATCH POUR MICROSOFT FORUMS NNTP BRIDGE V1 par pierre
Si vous avez téléchargé comme moi Microsoft Forums NNTP Bridge V1 avant le 11 mars 2010 (voir [Astuce] Disponibilité de Microsoft Forum NNTP Bridge Version 1.0), un problème de date localisée pour les non anglais était présent. Un patch est disponibl...
Cliquez pour lire la suite de l'article par pierre PB LORS DE L'INSTALLATION SHAREPOINT 2010.PB LORS DE L'INSTALLATION SHAREPOINT 2010. par Patrick Guimonet
Lors de l'installation de SharePoint 2010, j'ai rencontré un problème de plantage à l'étape 5 du configuration Wizard. Ca se termine sur cet écran : Et en analysant le fichier de journalisation, on remarque vers la fin des 15000 et quelques lign...
Cliquez pour lire la suite de l'article par Patrick Guimonet [WF4] AJOUTER DES CONTRAINTES à UNE ACTIVITé (2/2)[WF4] AJOUTER DES CONTRAINTES à UNE ACTIVITé (2/2) par JeremyJeanson
Après mon précédent article qui attaque les contraintes par la fasse Nord de l'Everest. passons à la seconde possibilité offerte par WF4 pour valider une activité : la metadata . Je vous en ai déjà toucher un ou deux mots. La metadata dans WF4 est un élém...
Cliquez pour lire la suite de l'article par JeremyJeanson [WF4] AJOUTER DES CONTRAINTES à UNE ACTIVITé (1/2)[WF4] AJOUTER DES CONTRAINTES à UNE ACTIVITé (1/2) par JeremyJeanson
De WF3 à WF4 pas mal de choses on été changées pour faciliter la vie des développeurs, mais certain points peuvent sembler obscures. comme les contraintes. Pour vous guider, je me lance dans une série de deux articles. Ils présenterons deux approches poss...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|