Jeu du pendu

Fermé
matis - Modifié le 27 oct. 2022 à 11:45
mamiemando Messages postés 33363 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 novembre 2024 - 27 oct. 2022 à 11:56

Bonjour,

Je dois faire un pendu codé en python pour mes cours de NSI. Je m'en sors tant bien que mal grâce à des tutoriels et des forums, mais j'ai un problème et, j'ai beau chercher, je ne trouve aucune solution.

Mon professeur nous a conseillé d'utiliser une liste de mots (environ une centaine) dans un document à part et de le relier a notre code pour y piocher les mots à faire deviner. Mais il ne nous a pas expliquer comment faire ????.

Je ne sais pas si j'ai été très clair mais j'espère sue quelqu'un saura m'éclairer.

A voir également:

3 réponses

georges97 Messages postés 12523 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 18 novembre 2024 2 405
Modifié le 27 oct. 2022 à 11:47

Bonsoir,

Un document à part peut être ce qu'on appelle un module, c'est çà dire un script python constitué d'une liste (liste = [....]) que vous importeriez dans le programme principal en utilisant le mot-clé import nom_du_fichier_externe.

voir ici une exemple d'utilisation de liste dans un programme (sans appel de module externe). A décliner comme suggéré plus haut.

https://forums.commentcamarche.net/forum/affich-37561155-probleme-de-boucle-python-jeux-pendu

Mais ce peut être aussi l'import d'un fichier texte de type CSV (séparation des termes par des virgules) ce qui présent l'avantage d'e prévoir plusieurs listes (niveau de vocabulaire, nombre de lettres maximum).

Il s'agit là d'utiliser la lecture d'un fichier texte (file) en utilisant les fonctions adéquates de python.

Je pense que c'est ce second mode qui vous est demandé.

Voir la syntaxe des fonctions open, read et close

0
mamiemando Messages postés 33363 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 novembre 2024 7 801
27 oct. 2022 à 11:56

On n'utilise rarement open et close pour lire un fichier texte (on préfère utilise with). Ensuite, selon comment sont organisés les mots dans le fichier texte, le code est plus ou moins compliqué (un mot par ligne, une ligne avec plusieurs mots, présence de séparateur ou non.

En admettant que chaque ligne contienne un ou plusieurs mots séparés par des espaces :

mots = set()
with open("fichier.txt") as f:
    mots = set(w for l in f.readlines() for w in l.split())
print(mots)

Bonne chance

0
PierrotLeFou
27 oct. 2022 à 07:31

Si on veut être bête et méchant, on peut faire un copier-coller de n'importe quel texte (de son goût si possible ...)
On le met dans un fichier et, après lecture, on le modifie.
On peut utiliser split(), replace(), etc.

0
georges97 Messages postés 12523 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 18 novembre 2024 2 405
Modifié le 27 oct. 2022 à 07:51

Bonjour PierrotLe Fou,
 

Effectivement, split() permet de scinder un texte quelconque en  prenant comme séparateur les espaces ou les sauts de ligne pour une liste de mots en colonne, mais je n'ai pas voulu compliquer les choses (même di je ne suis pas un cador, juste un faux débutant).
 

Ce serait bien que le demandeur nous dise si cela l'a aidé.

0
PierrotLeFou
27 oct. 2022 à 07:55

C'était plus une réponse de paresseux que d'expert que je donnais ...
Il faudrait en effet plus de précisions sur ce qui est demandé.

0