Jeu de mot

Résolu/Fermé
cara - Modifié le 1 mai 2018 à 16:57
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 28 mai 2018 à 08:15
Bonjour,
j'aimerai savoir comment poser différentes questions sur une même série de mot.
pour une liste de mot crée aléatoirement, j'ai choisi pour question n 1 "quel mot contient la lettre x"

from random import randint
from random import *

def importer_dictionnaire(fichier_dictionnaire):
    liste_dictionnaire = []
    f = open(fichier_dictionnaire, 'r')
    for line in f.readlines():
        liste_dictionnaire.append(line.lower().strip())
    f.close()
    return liste_dictionnaire
liste_dictionnaire = importer_dictionnaire("dico-complet.txt")
l1=[]
l2=[]
for mot in liste_dictionnaire:
    if "x" in mot:
        l1.append(mot)
    else:
        l2.append(mot)

Q1= print("Quel mot contient la lettre x?")
l3=[]
jeu=sample(l1,1)
jeu2=sample(l2,9)
l3.append(jeu)
l3.append(jeu2)
print(l3)


mais sur cette même liste de mot qui va apparaître je souhaite demander parmi ces mot le quelle contient la lettre S, en prenant en compte la réponse précédente.


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.




A voir également:

2 réponses

Bonjour.

La question à se poser, est :
Qu'est-ce qui va garantir que dans ta liste de mots, il y en a au moins un qui comporte la lettre s ?

Donc si tu dois faire pareil que pour la lettre x, (un seul mot comportant cette lettre), c'est également à la construction de ta liste de mots que tu dois faire cela.

Et il faudra faire attention au cas précédent, ie : le mot contenant la lettre x contient-il aussi la lettre s ?
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
9 mai 2018 à 13:29
Bonjour,

Si les questions sont connues à l'avance (i.e. au moment d'écrire le programme), il suffit d'écrire une fonction de filtrage qui va extraire la sous-liste de mots adéquate.

#!/usr/bin/env python3

def filtre(mots :list, c :chr) -> list:
    return [mot for mot in mots if c in mot]

mots = ["Savez", "vous", "planter", "les", "choux", "Saindoux"]

mots_x = filtre(mots, 'x')
print("mots_x = %r" % mots_x)

mots_S = filtre(mots, 'S')
print("mots_S = %r" % mots_S)

mots_xS = filtre(filtre(mots, 'x'), 'S')
print("mots_xS = %r" % mots_xS)

# Ou aussi:
# mots_xS = filtre(mots_x, 'S')
# mots_xS = filtre(mots_S, 'x')


Ce qui donne :

mots_x = ['choux', 'Saindoux']
mots_S = ['Savez', 'Saindoux']
mots_xS = ['Saindoux']


Bonne chance
0
Bonjour,
Merci d'avoir répondu ca nous à été très utile!
bonne continuation
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
28 mai 2018 à 08:15
Parfait, bonne continuation également
0