Accueil > > > LE MOT LE PLUS LONG PAR DICO
LE MOT LE PLUS LONG PAR DICO
Information sur la source
Description
mon premier programme python un peu élaboré, Il ouvre un dico de mots, demande à l'utilisateur la suite de lettres, si l'utilisateur rentre rand() un mode aléatoire est prévu, il cherche les plus grand mots possibles, bref ça marche très bien... exemple: pour typhno il donnera python, thon,... Parfait pour jouer à l'émission "des chiffres et des lettres", à condition d'avoir un bon dico. J'attends vos critiques et vos conseils avec impatience.
Source
- # selection du dictionnaire de mots
- print "\nentrez small pour avoir le petit dico fr (ultrarapide, petit, tres fiable)"
- print "entrez latin pour avoir le dico latin (rapide, moyen, tres fiable)"
- print "entrez medium pour avoir le dico fr moyen (rapide, gros, moyennement fiable)"
- print "entrez big pour avoir le gros dico fr (lent, tres gros, peu fiable)"
- print "\nentrez le nom du dico :",
- adresse = raw_input()
-
- if adresse == "small":
- adresse = "top10000fr.txt"
- elif adresse == "medium":
- adresse = "dictionary_french.dic"
- elif adresse == "big":
- adresse = "wordlist.txt"
- elif adresse == "latin":
- adresse = "dictionary_latin.dic"
-
- # mise en memoire vive du dico
- try:
- try:
- dico = file(adresse,'r')
- print "chargement du dictionnaire..."
- x = dico.readlines()
- dico.close() # fin de l'utilisation du fichier
- except:
- adresse += ".txt"
- dico = file(adresse,'r')
- print "ouverture du fichier nomme :", adresse
- x = dico.readlines()
- dico.close() # fin de l'utilisation du fichier
- except:
- print "impossible d'ouvrir le fichier indique, le dico small sera ouvert"
- print "chargement du dictionnaire..."
- dico = file("top10000fr.txt",'r')
- x = dico.readlines()
- dico.close() # fin de l'utilisation du fichier
-
- # conversion en liste de mots sans \n
- dico = []
- for mot in x:
- dico.append(mot[0:len(mot)-1])
-
- possible = False
- ok = []
- last = ""
-
- # l'utilisateur entre les lettres melees
- print "\nentrez la suite de lettres : ",
- lettresmeles = raw_input()
- lettresmeles.lower() # lettres en minuscule
- import random
-
- # generation aleatoire rand()
- if lettresmeles == "rand()":
- alphabet = "abcdefghijklmnopqrstuvwxyz"
- lettresmeles = ""
- print "entrez la taille du mot a generer :",
- taille = raw_input()
- try:
- taille = int(taille)
- except:
- taille = 9
- for un in range(taille):
- lettre = random.randrange(26)
- lettresmeles += alphabet[lettre]
-
- print "voici le mot genere aleatoirement :", lettresmeles
-
- # recherche des mots possibles
- print "recherche en cours..."
- for mot in dico:
-
- if possible == True:
- ok.append(last)
-
- last = mot
- for lettre in mot:
- if mot.count(lettre) > lettresmeles.count(lettre):
- possible = False
- break
- else:
- possible = True
-
- if possible == True:
- ok.append(last)
-
- compteur = -1
- final = []
-
- if len(ok) != 0:
- final.append(ok[-1])
-
- if len(final) > 1:
- final.append(ok[-1])
-
- if len(ok) > 1:
- try:
- while len(ok[compteur-1]) == len(ok[compteur]):
- final.append(ok[compteur-1])
- compteur -= 1
- except:
- print "impossible de trouver les plus grandes valeurs"
-
- try:
- pourcent = str(int((float(len(final[0]))/float(len(lettresmeles)))*100))
- pourcent += "%"
- except:
- pourcent = "0%"
-
- if len(final) > 1:
- print "\nvoici les plus grands mots trouves : ", final, " (", len(final[0]), " lettres,", pourcent, ")"
-
- elif len(final) > 0:
- print "\nvoici le plus grand mot trouve : ", final[0], " (", len(final[0]), "/", len(lettresmeles), " lettres,", pourcent, ")"
- elif len(final) == 0:
- print "\naucun mot trouve"
-
- if len(final) < len(ok):
- print "\nvoulez vous afficher la liste des", len(ok), "mots trouves ?",
- if raw_input() == "oui":
- print "\nliste complete des mots trouves : \n"
- for mot in ok:
- print mot
# selection du dictionnaire de mots
print "\nentrez small pour avoir le petit dico fr (ultrarapide, petit, tres fiable)"
print "entrez latin pour avoir le dico latin (rapide, moyen, tres fiable)"
print "entrez medium pour avoir le dico fr moyen (rapide, gros, moyennement fiable)"
print "entrez big pour avoir le gros dico fr (lent, tres gros, peu fiable)"
print "\nentrez le nom du dico :",
adresse = raw_input()
if adresse == "small":
adresse = "top10000fr.txt"
elif adresse == "medium":
adresse = "dictionary_french.dic"
elif adresse == "big":
adresse = "wordlist.txt"
elif adresse == "latin":
adresse = "dictionary_latin.dic"
# mise en memoire vive du dico
try:
try:
dico = file(adresse,'r')
print "chargement du dictionnaire..."
x = dico.readlines()
dico.close() # fin de l'utilisation du fichier
except:
adresse += ".txt"
dico = file(adresse,'r')
print "ouverture du fichier nomme :", adresse
x = dico.readlines()
dico.close() # fin de l'utilisation du fichier
except:
print "impossible d'ouvrir le fichier indique, le dico small sera ouvert"
print "chargement du dictionnaire..."
dico = file("top10000fr.txt",'r')
x = dico.readlines()
dico.close() # fin de l'utilisation du fichier
# conversion en liste de mots sans \n
dico = []
for mot in x:
dico.append(mot[0:len(mot)-1])
possible = False
ok = []
last = ""
# l'utilisateur entre les lettres melees
print "\nentrez la suite de lettres : ",
lettresmeles = raw_input()
lettresmeles.lower() # lettres en minuscule
import random
# generation aleatoire rand()
if lettresmeles == "rand()":
alphabet = "abcdefghijklmnopqrstuvwxyz"
lettresmeles = ""
print "entrez la taille du mot a generer :",
taille = raw_input()
try:
taille = int(taille)
except:
taille = 9
for un in range(taille):
lettre = random.randrange(26)
lettresmeles += alphabet[lettre]
print "voici le mot genere aleatoirement :", lettresmeles
# recherche des mots possibles
print "recherche en cours..."
for mot in dico:
if possible == True:
ok.append(last)
last = mot
for lettre in mot:
if mot.count(lettre) > lettresmeles.count(lettre):
possible = False
break
else:
possible = True
if possible == True:
ok.append(last)
compteur = -1
final = []
if len(ok) != 0:
final.append(ok[-1])
if len(final) > 1:
final.append(ok[-1])
if len(ok) > 1:
try:
while len(ok[compteur-1]) == len(ok[compteur]):
final.append(ok[compteur-1])
compteur -= 1
except:
print "impossible de trouver les plus grandes valeurs"
try:
pourcent = str(int((float(len(final[0]))/float(len(lettresmeles)))*100))
pourcent += "%"
except:
pourcent = "0%"
if len(final) > 1:
print "\nvoici les plus grands mots trouves : ", final, " (", len(final[0]), " lettres,", pourcent, ")"
elif len(final) > 0:
print "\nvoici le plus grand mot trouve : ", final[0], " (", len(final[0]), "/", len(lettresmeles), " lettres,", pourcent, ")"
elif len(final) == 0:
print "\naucun mot trouve"
if len(final) < len(ok):
print "\nvoulez vous afficher la liste des", len(ok), "mots trouves ?",
if raw_input() == "oui":
print "\nliste complete des mots trouves : \n"
for mot in ok:
print mot
Conclusion
je n'ai malheureusement pu mettre que le dico small et medium dans le zip.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
codage des caracteres [ par jerompnt ]
Bonjour a toussur python2.4/windows2000/idleQuand j'affiche des listes(et uniquement pour les listes) dont les chaines possédent un accent,
Zope: Contenu d'une liste en fonction d'une autre [ par keumlebarbare ]
AU SECOURS!!!! Je suis tout ce qu'il y a de plus débutant en Zope, et je crois que si je continue à galérer comme ca, je me (re)met a
Fichiers en python [ par darfeuille ]
Salut, Etant novice en python, je bloque sur un truc : Dans un de mes programmes, a un moment, je dois recopier un fichier (en le modi
Date de création des fichiers par ftp [ par judre ]
Salut, J'ai une application qui transfère une tonne de fichier par ftp en utilisant ftplib. J'aimerais savoir si y'a un truc pour tél
instruction de base sous Python de transfert de fichiers [ par dgpgl ]
Comment transferer des fichiers par xxx.jpeg depuis un PC windows sur une machine linux... a l'adresse xxx.ccc.com qui est ouverte via un port s
Comment restaurer data.fs dans l' application zope? [ par rabikisa ]
Bonjour, J'ai monté un serveur Zope sous Linux et je dois mettre en place une stratégie de sauvegarde. Zope sauvegarde toutes ses configurations, les
fichiers [ par xilure ]
voila mon nouveau probleme: je créé un fichier: op=open('monficher','a') op.write(''quelque chose'") op.close() apres comment puis je par
erreurs video [ par ktamine ]
bonjour étudiante en arts plastiques, je travaille autour de l’esthétique de l’erreur et des données corrompues (d’image
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
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
|
Derniers Blogs
ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0 par Philess
L'extensibilité du Team Web Access
Le Web Access (site d'équipe) de Team Foundation Server a été complètement réécrit dans la version 2012 avec pas moins de 400.000 lignes de JavaScript. Ce nouveau modèle a été pensé pour offrir de grandes...
Cliquez pour lire la suite de l'article par Philess SIMULER FACILEMENT L'ENVOI DE MAILSIMULER FACILEMENT L'ENVOI DE MAIL par JeremyJeanson
il m'a été demandé, à plusieurs reprises, comment je faisais pour simuler l'envoi de mail lors de mes démos de Workflow Foundation. Ma solution est plutôt simple : j'utilise la configuration par défaut du SmtpClient et j'oriente les mails vers un dossier ...
Cliquez pour lire la suite de l'article par JeremyJeanson VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES !VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES ! par Patrick Guimonet
Si ce n'est déjà fait (comme plus de 600 personnes déjà), il est encore temps de voter pour le concours TOP 10 des influenceurs SharePoint francophones ! Il est organisé par harmon.ie et accessible ici : http://harmon.ie/top-...
Cliquez pour lire la suite de l'article par Patrick Guimonet [CONF'SHAREPOINT] DERNIER RAPPEL ! :-)[CONF'SHAREPOINT] DERNIER RAPPEL ! :-) par Patrick Guimonet
La Conf'SharePoint en chiffres c'est : 3 jours de SharePoint ! 4 parcours et 60 sessions 17 partenaires représentant toutes les fac...
Cliquez pour lire la suite de l'article par Patrick Guimonet
Logiciels
Easy-Planning (4.5.0.11)EASY-PLANNING (4.5.0.11)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté a... Cliquez pour télécharger Easy-Planning CVEasy (3.1.0.51)CVEASY (3.1.0.51)PHMSD-CVEasy est un logiciel d'aide à la rédaction de CV d'une simplicité déconcertante.
PHMSD-C... Cliquez pour télécharger CVEasy LettresFaciles 2011 (8.6.0.31)LETTRESFACILES 2011 (8.6.0.31)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011 sDEVIS-FACTURES vlPRO (8.4.2.62)SDEVIS-FACTURES VLPRO (8.4.2.62)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO Devis-Factures PHMSD (2.1.0.11)DEVIS-FACTURES PHMSD (2.1.0.11)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD
|