Séparer mot dans une liste en .txt
Résolu/Fermé
A voir également:
- Séparer les lettres d'un mot python
- Piratage facebook changer mot de passe - Guide
- Séparer pdf - Guide
- Mettre un mot de passe sur un dossier - Guide
- Voir mot de passe wifi android - Guide
- Dans le texte, un seul mot a réellement été écrit en lettres capitales (majuscules). quel est ce mot ? ✓ - Forum Word
14 réponses
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
26 nov. 2020 à 09:55
26 nov. 2020 à 09:55
Bonjour Thomas,
Pas facile de lire ton code sans les indentations:
ca devrait être comme ceci:
Pas facile de lire ton code sans les indentations:
with open ("mot.txt","r") as doc : for l in doc : mot.append(l.rstrip("n"))
ca devrait être comme ceci:
with open ("mot.txt","r") as doc : for l in doc : mot.append(l.rstrip("n"))
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
Modifié le 26 nov. 2020 à 10:21
Modifié le 26 nov. 2020 à 10:21
Pourquoi repostes-tu ton code sans les indentations ?????
moi, quand je copie ce code:
def test():
.... print('test')
test()
et que j'applique les balises de code, ca donne ça:
Voici comment faire :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
moi, quand je copie ce code:
def test():
.... print('test')
test()
et que j'applique les balises de code, ca donne ça:
def test(): print('test') test()
Voici comment faire :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
# Le jeu du pendu from tkinter import * #module graphique from random import choice # module random fichier = open("listemots.txt", "r") # Ouverture du fichier listemots = fichier.read() # met tous les mots du fichier dans une liste texte = listemots.split(";") def lettre_dans_mot(lettre) : # Fonction apparition de lettres global partie_en_cours, mot_partiel, mot_choisi, nb_echecs, image_pendu if partie_en_cours : nouveau_mot_partiel = "" lettre_dans_mot = False i=0 while i<len(mot_choisi): if mot_choisi[i]==lettre: nouveau_mot_partiel = nouveau_mot_partiel + lettre lettre_dans_mot = True else: nouveau_mot_partiel = nouveau_mot_partiel + mot_partiel[i] i+=1 mot_partiel = nouveau_mot_partiel afficher_mot(mot_partiel) if not lettre_dans_mot : # lettre fausse. Changer le dessin. nb_echecs += 1 nomFichier = "pendu_"+str(nb_echecs)+".gif" photo=PhotoImage(file=nomFichier) image_pendu.config(image=photo) image_pendu.image=photo if nb_echecs == 7: # trop d'erreurs. Fini. partie_en_cours = False afficher_mot(mot_choisi) elif mot_partiel == mot_choisi: # le mot a été trouvé ! partie_en_cours = False def afficher_mot(mot): # Fonction mot global lettres mot_large = "" i=0 while i<len(mot): # Ajoute un espace entre les lettres mot_large = mot_large + mot[i] + " " i+=1 canevas.delete(lettres) lettres = canevas.create_text(320,60,text=mot_large,fill='black',font='Courrier 30') def init_jeu(): #definition jeu global mot_choisi, mot_partiel, image_pendu, lettres global nb_echecs, partie_en_cours, liste_mots nb_echecs = 0 partie_en_cours = True mot_choisi = choice(listemots).rstrip() mot_choisi = mot_choisi.upper() mot_partiel = "-" * len(mot_choisi) afficher_mot(mot_partiel) photo=PhotoImage(file="pendu_0.gif") image_pendu.config(image=photo) image_pendu.image=photo # création du widget principal / fenetre fenetre = Tk() fenetre.title("Le jeu du pendu") canevas = Canvas(fenetre, bg='white', height=500, width=620) canevas.pack(side=BOTTOM) bouton = [0]*26 for i in range(26): bouton[i] = Button(fenetre,text=chr(i+65),command=lambda x=i+65:lettre_dans_mot(chr(x))) bouton[i].pack(side=LEFT) bouton2 = Button(fenetre,text='Quitter',command=fenetre.quit) bouton2.pack(side=RIGHT) bouton1 = Button(fenetre,text='Recommencer',command=init_jeu) bouton1.pack(side=RIGHT) photo=PhotoImage(file="pendu_0.gif") image_pendu = Label(canevas, image=photo, border=0) image_pendu.place(x=120, y=140) lettres = canevas.create_text(320,60,text="",fill='black',font='Courrier 30') init_jeu() fenetre.mainloop() fenetre.destroy()
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
Modifié le 26 nov. 2020 à 10:55
Modifié le 26 nov. 2020 à 10:55
tu as du te tromper et ne pas choisir Python dans la liste, car les couleurs, ca n'est pas vraiment ça …
j'ai testé ton code en commentant les affichages d'images, car je ne les ai pas, et la lecture de ton fichier, je ne l'ai pas non plus, j'ai simplement initialisé listemots = 'mot 1;mot 2'
A l'exécution, ca donne ça:
Au fait, tu ne fermes pas ton fichier listemots.txt
tu as une fonction lettre_dans_mot et une variable lettre_dans_mot : pas tres bon !
mot_choisi = choice(listemots).rstrip() ne rends qu'une lettre, pas un mot !
j'ai testé ton code en commentant les affichages d'images, car je ne les ai pas, et la lecture de ton fichier, je ne l'ai pas non plus, j'ai simplement initialisé listemots = 'mot 1;mot 2'
A l'exécution, ca donne ça:
Au fait, tu ne fermes pas ton fichier listemots.txt
tu as une fonction lettre_dans_mot et une variable lettre_dans_mot : pas tres bon !
mot_choisi = choice(listemots).rstrip() ne rends qu'une lettre, pas un mot !
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
26 nov. 2020 à 13:10
26 nov. 2020 à 13:10
C'est pour ca qu'il n'y a qu'un seule tiret qui s'affiche, au lieu d'un nombre de tirets égal à la longueur du mot ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
Modifié le 26 nov. 2020 à 16:16
Modifié le 26 nov. 2020 à 16:16
Les images marchent bien, OK
A voir avec mes remarques pour corriger tout ça:
_ renommer la variable lettre_dans_mot pour que son nom soit différent de la fonction
_ faire un fichier.close() juste après fichier.read() ce sera plus propre
_ extraire un mot au hasard plutôt qu'une seule lettre dans init_jeu()
_ fenetre.destroy() a la fin ne sert à rien
moi, j'ai corrigé ton code de mon coté et ca marche super bien, ca choisi un mot de 5 lettres,
donc 5 tirets s'affichent et quand on clique sur les bonnes lettres, elles s'affichent a la place des tirets
A voir avec mes remarques pour corriger tout ça:
_ renommer la variable lettre_dans_mot pour que son nom soit différent de la fonction
_ faire un fichier.close() juste après fichier.read() ce sera plus propre
_ extraire un mot au hasard plutôt qu'une seule lettre dans init_jeu()
_ fenetre.destroy() a la fin ne sert à rien
moi, j'ai corrigé ton code de mon coté et ca marche super bien, ca choisi un mot de 5 lettres,
donc 5 tirets s'affichent et quand on clique sur les bonnes lettres, elles s'affichent a la place des tirets
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
>
Thomas
Modifié le 27 nov. 2020 à 13:37
Modifié le 27 nov. 2020 à 13:37
ok, le plus important est de modifier la ligne
de plus ce n'est pas listemots qu'il faut utiliser mais texte car c' est une liste, et choice agit sur une liste
mot_choisi = choice(listemots).rstrip()car elle ne tire qu'une lettre pas un mot
de plus ce n'est pas listemots qu'il faut utiliser mais texte car c' est une liste, et choice agit sur une liste
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
27 nov. 2020 à 10:41
27 nov. 2020 à 10:41
Bonjour Thomas,
Alors, as-tu de la réussite ?
Alors, as-tu de la réussite ?
Bonjour,
Grâce à votre aide le code marche parfaitement bien. Je vous en remercie.
Il me reste encore quelques petites choses à peaufiner.
Puis-je vous solliciter de nouveau en cas de nécessité ?
Grâce à votre aide le code marche parfaitement bien. Je vous en remercie.
Il me reste encore quelques petites choses à peaufiner.
Puis-je vous solliciter de nouveau en cas de nécessité ?
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
Modifié le 28 nov. 2020 à 11:34
Modifié le 28 nov. 2020 à 11:34
bonjour Thomas,
Ok
Tu peux faire voir ton code pour voir par quoi tu as remplacé
mot_choisi = choice(listemots).rstrip()
Moi, j'ai fait comme ça au début
et dans la fonction init_jeu :
Ok
Tu peux faire voir ton code pour voir par quoi tu as remplacé
mot_choisi = choice(listemots).rstrip()
Moi, j'ai fait comme ça au début
#Lecture des mots dans le fichier fichier = open("listemots.txt", "r") mots = fichier.read() fichier.close() #Conversion en liste liste_mots = mots.split(";")
et dans la fonction init_jeu :
mot_choisi = (choice(liste_mots)).upper()
# Le jeu du pendu from tkinter import * #module graphique from random import choice # module random fichier = open("listemots.txt", "r") # Ouverture du fichier listemots = fichier.read() # met tous les mots du fichier dans une liste fichier.close() # fermeture du fichier #conversion en liste texte = listemots.split(";") def lettre_dans_mot(lettre) : # Fonction apparition de lettres global partie_en_cours, mot_partiel, mot_choisi, nb_echecs, image_pendu if partie_en_cours : nouveau_mot_partiel = "" lettre_mot = False i=0 while i<len(mot_choisi): if mot_choisi[i]==lettre: nouveau_mot_partiel = nouveau_mot_partiel + lettre lettre_mot = True else: nouveau_mot_partiel = nouveau_mot_partiel + mot_partiel[i] i+=1 mot_partiel = nouveau_mot_partiel afficher_mot(mot_partiel) if not lettre_mot : # lettre fausse. Changer le dessin. nb_echecs += 1 nomFichier = "pendu_"+str(nb_echecs)+".gif" photo=PhotoImage(file=nomFichier) image_pendu.config(image=photo) image_pendu.image=photo if nb_echecs == 7: # trop d'erreurs. Fini. partie_en_cours = False afficher_mot(mot_choisi) elif mot_partiel == mot_choisi: # le mot a été trouvé ! partie_en_cours = False def afficher_mot(mot): # Fonction mot global lettres mot_large = "" i=0 while i<len(mot): # Ajoute un espace entre les lettres mot_large = mot_large + mot[i] + " " i+=1 canevas.delete(lettres) lettres = canevas.create_text(320,60,text=mot_large,fill='black',font='Courrier 30') def init_jeu(): #definition jeu global mot_choisi, mot_partiel, image_pendu, lettres global nb_echecs, partie_en_cours, liste_mots nb_echecs = 0 partie_en_cours = True mot_choisi = choice(texte).rstrip() mot_choisi = mot_choisi.upper() mot_partiel = "-" * len(mot_choisi) afficher_mot(mot_partiel) photo=PhotoImage(file="pendu_0.gif") image_pendu.config(image=photo) image_pendu.image=photo # création du widget principal / fenetre fenetre = Tk() fenetre.title("Le jeu du pendu") canevas = Canvas(fenetre, bg='white', height=500, width=620) canevas.pack(side=BOTTOM) bouton = [0]*26 for i in range(26): bouton[i] = Button(fenetre,text=chr(i+65),command=lambda x=i+65:lettre_dans_mot(chr(x))) bouton[i].pack(side=LEFT) bouton2 = Button(fenetre,text='Quitter',command=fenetre.quit) bouton2.pack(side=RIGHT) bouton1 = Button(fenetre,text='Recommencer',command=init_jeu) bouton1.pack(side=RIGHT) photo=PhotoImage(file="pendu_0.gif") image_pendu = Label(canevas, image=photo, border=0) image_pendu.place(x=120, y=140) lettres = canevas.create_text(320,60,text="",fill='black',font='Courrier 30') init_jeu() fenetre.mainloop()
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
Modifié le 28 nov. 2020 à 13:59
Modifié le 28 nov. 2020 à 13:59
Super, ca fonctionne !
Puis-je me permettre de te soumettre mon code, non pas parce que je me pense plus malin que toi, mais juste pour te montrer 2 ou 3 trucs
J'ai aéré le code avec des lignes vides dans les fonctions, et notammment apres la liste des global
J'ai enlevé des commentaires évidents
J'ai remplacé les commentaires des fonctions par des doc de fonctions: commentaire entre triples guillemets en début de fonction
on peut faire afficher ces docs comme ceci:
J'ai remplacé
et ensuite
Et enfin, le choix d'un mot au hasard avec mise en majuscules en une seule ligne:
(le rstrip() ne sert pas à grand chose ...)
Puis-je me permettre de te soumettre mon code, non pas parce que je me pense plus malin que toi, mais juste pour te montrer 2 ou 3 trucs
J'ai aéré le code avec des lignes vides dans les fonctions, et notammment apres la liste des global
J'ai enlevé des commentaires évidents
J'ai remplacé les commentaires des fonctions par des doc de fonctions: commentaire entre triples guillemets en début de fonction
on peut faire afficher ces docs comme ceci:
print(lettre_est_dans_mot.__doc__)
J'ai remplacé
listemots = fichier.read()par
mots = fichier.read()car à ce stade ce n'est pas encore une liste
et ensuite
liste_mots = mots.split(";")
Et enfin, le choix d'un mot au hasard avec mise en majuscules en une seule ligne:
mot_choisi = (choice(liste_mots)).upper()
(le rstrip() ne sert pas à grand chose ...)
# -*- coding:Latin-1 -*- from tkinter import * from random import choice #Lecture des mots dans le fichier fichier = open("listemots.txt", "r") mots = fichier.read() fichier.close() #Conversion en liste liste_mots = mots.split(";") def lettre_est_dans_mot(lettre) : ''' Recherche si la lettre est contenue dans le mot à deviner ''' global partie_en_cours, mot_partiel, mot_choisi, nb_echecs, image_pendu if partie_en_cours : nouveau_mot_partiel = "" lettre_dans_mot = False i=0 while i<len(mot_choisi): if mot_choisi[i]==lettre: nouveau_mot_partiel = nouveau_mot_partiel + lettre lettre_dans_mot = True else: nouveau_mot_partiel = nouveau_mot_partiel + mot_partiel[i] i+=1 mot_partiel = nouveau_mot_partiel afficher_mot(mot_partiel) if not lettre_dans_mot : # lettre fausse. Changer le dessin. nb_echecs += 1 nomFichier = "pendu_"+str(nb_echecs)+".gif" photo=PhotoImage(file=nomFichier) image_pendu.config(image=photo) image_pendu.image=photo if nb_echecs == 7: # trop d'erreurs. Fini. partie_en_cours = False afficher_mot(mot_choisi) elif mot_partiel == mot_choisi: # le mot a été trouvé ! partie_en_cours = False def afficher_mot(mot): ''' Affiche le mot à deviner ''' global lettres mot_large = "" i=0 while i<len(mot): # Ajoute un espace entre les lettres mot_large = mot_large + mot[i] + " " i+=1 canevas.delete(lettres) lettres = canevas.create_text(320,60,text=mot_large,fill='black',font='Courrier 30') def init_jeu(): ''' Tire un mot au hasard et affiche une série de tirets ''' global mot_choisi, mot_partiel, image_pendu, lettres, nb_echecs, partie_en_cours, liste_mots nb_echecs = 0 partie_en_cours = True mot_choisi = (choice(liste_mots)).upper() mot_partiel = "-" * len(mot_choisi) afficher_mot(mot_partiel) photo=PhotoImage(file="pendu_0.gif") image_pendu.config(image=photo) image_pendu.image=photo #Interface graphique fenetre = Tk() fenetre.title("Le jeu du pendu") canevas = Canvas(fenetre, bg='white', height=500, width=620) canevas.pack(side=BOTTOM) bouton = [0]*26 for i in range(26): bouton[i] = Button(fenetre,text=chr(i+65),command=lambda x=i+65:lettre_est_dans_mot(chr(x))) bouton[i].pack(side=LEFT) bouton2 = Button(fenetre,text='Quitter',command=fenetre.quit) bouton2.pack(side=RIGHT) bouton1 = Button(fenetre,text='Recommencer',command=init_jeu) bouton1.pack(side=RIGHT) photo=PhotoImage(file="pendu_0.gif") image_pendu = Label(canevas, image=photo, border=0) image_pendu.place(x=120, y=140) lettres = canevas.create_text(320,60,text="",fill='black',font='Courrier 30') init_jeu() fenetre.mainloop()
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
Modifié le 29 nov. 2020 à 18:50
Modifié le 29 nov. 2020 à 18:50
Bonsoir Thomas,
Pas de problème
Tu peux marquer cet appel comme résolu ...
Pas de problème
Tu peux marquer cet appel comme résolu ...
Bonjour,
Me revoila, j'ai un petit souci, j'ai rajouté une musique de fond dans le code, mais le souci est que lorsque je ferme la fenêtre TKinter, la musique ne s'éteint pas. J'ai cherché le souci mais en vain.
Pouvez-vous m'aider pour cela ?
Me revoila, j'ai un petit souci, j'ai rajouté une musique de fond dans le code, mais le souci est que lorsque je ferme la fenêtre TKinter, la musique ne s'éteint pas. J'ai cherché le souci mais en vain.
Pouvez-vous m'aider pour cela ?
# [https://www.commentcamarche.net/download/telecharger-34085295-le-jeu-du-pendu Le jeu du pendu] from tkinter import * #module graphique from random import choice # module random import pygame fichier = open("listemots.txt", "r") # Ouverture du fichier listemots = fichier.read() # met tous les mots du fichier dans une liste fichier.close() # fermeture du fichier #conversion en liste texte = listemots.split(";") pygame.mixer.init() pygame.mixer.music.load("arbredupendu.mp3") def Music(): print(musique.get()) if musique.get() == 1: # 1 (ON) # joue en boucle pygame.mixer.music.play(-1) else: # 0 (OFF) pygame.mixer.music.stop() def lettre_dans_mot(lettre) : # Fonction apparition de lettres global partie_en_cours, mot_partiel, mot_choisi, nb_echecs, image_pendu if partie_en_cours : nouveau_mot_partiel = "" lettre_mot = False i=0 while i<len(mot_choisi): if mot_choisi[i]==lettre: nouveau_mot_partiel = nouveau_mot_partiel + lettre lettre_mot = True else: nouveau_mot_partiel = nouveau_mot_partiel + mot_partiel[i] i+=1 mot_partiel = nouveau_mot_partiel afficher_mot(mot_partiel) if not lettre_mot : # lettre fausse. Changer le dessin. nb_echecs += 1 nomFichier = "pendu"+str(nb_echecs)+".gif" photo=PhotoImage(file=nomFichier) image_pendu.config(image=photo) image_pendu.image=photo if nb_echecs == 7: # trop d'erreurs. Fini. partie_en_cours = False afficher_mot(mot_choisi) elif mot_partiel == mot_choisi: # le mot a été trouvé ! partie_en_cours = False def afficher_mot(mot): # Fonction mot global lettres mot_large = "" i=0 while i<len(mot): # Ajoute un espace entre les lettres mot_large = mot_large + mot[i] + " " i+=1 canevas.delete(lettres) lettres = canevas.create_text(320,60,text=mot_large,fill='black',font='Courrier 30') def init_jeu(): #definition jeu global mot_choisi, mot_partiel, image_pendu, lettres global nb_echecs, partie_en_cours, liste_mots nb_echecs = 0 partie_en_cours = True mot_choisi = choice(texte).rstrip() mot_choisi = mot_choisi.upper() mot_partiel = "-" * len(mot_choisi) afficher_mot(mot_partiel) photo=PhotoImage(file="pendu0.gif") image_pendu.config(image=photo) image_pendu.image=photo # création du widget principal / fenetre fenetre = Tk() fenetre.title("Le jeu du pendu BY Thomas, Philippe, Romain & Corentin") canevas = Canvas(fenetre, bg='white', height=500, width=720) canevas.pack(side=BOTTOM) bouton = [0]*26 for i in range(26): bouton[i] = Button(fenetre,text=chr(i+65),command=lambda x=i+65:lettre_dans_mot(chr(x)),font = 'Century') bouton[i].pack(side=LEFT) bouton2 = Button(fenetre,text='Quitter',command=fenetre.destroy, font='Century') bouton2.pack(side=RIGHT) bouton1 = Button(fenetre,text='Recommencer',command=init_jeu, font='Century') bouton1.pack(side=RIGHT) photo=PhotoImage(file="pendu0.gif") image_pendu = Label(canevas, image=photo, border=0) image_pendu.place(x=120, y=140) lettres = canevas.create_text(320,60,text="",fill='black',font='Century') # Création d'un widget Checkbutton musique = IntVar() musique.set(1) # ON Checkbutton(Mafenetre,text="Musique de fond",variable=musique,command=Music).pack(side=LEFT,padx=10,pady=10) init_jeu() fenetre.mainloop()
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
Modifié le 30 nov. 2020 à 16:03
Modifié le 30 nov. 2020 à 16:03
Bonjour Thomas,
Cet appel étant résolu, peux-tu reposter un autre appel avec le titre qui correspond ? :-)
Cet appel étant résolu, peux-tu reposter un autre appel avec le titre qui correspond ? :-)
Modifié le 26 nov. 2020 à 10:26
Savez vous comment résoudre le problème :