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
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
974 Application Server (12.2.4.0)974 APPLICATION SERVER (12.2.4.0)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP mySongBook Player (1.0.0)MYSONGBOOK PLAYER (1.0.0)mySongBook Player est un logiciel gratuit permettant l'accès à une archive de tablatures/partitio... Cliquez pour télécharger mySongBook Player
|