IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

IMPORTANT - Aide Scrabble Projet ISN Terminale S


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Points : 2
    Points
    2
    Par défaut IMPORTANT - Aide Scrabble Projet ISN Terminale S
    Bonjour,

    Voici le programme que j'ai fais, il permet de faire des tirages de lettres aléatoire pour un scrabble ainsi que calculer le score d'un mot et j'ai besoin de votre aide pour vérifier si un mot existe ou non. Dans le programme suivant : le fichier texte est un fichier où il y a tous les mots du dictionnaire, que je mets sous forme de liste car ils sont mis sous forme de colonne dans le fichier. Puis j'enlève le "\n" du retour à la ligne.
    Mon problème est que lorsque je fais "if mot in Contenu" est bien le programme me trouve pas le mot.

    Voici mon programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    from random import*
     
    Lettre = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
    Valeur = [1,3,3,2,1,4,2,4,1,8,10,1,2,1,1,3,8,1,1,1,1,4,10,10,10,10]
    score=0
    scorefin=0
     
     
    """
    def Tirage():    
        while 1:
            aleat = randint(0,25)
            reponse = input("Tirage de la lettre, tapez <Entrer>")
            scrabb ="lettre {} : {} point(s)."
            print(scrabb.format(Lettre[aleat], Valeur[aleat]))
            score=Valeur[aleat]+score
            print(score)
            return
    """
    mot=input("mot:")
    mot.lower()
    b=len(mot)
    for i in range (b):
            a=Lettre.index(mot[i])
            score=Valeur[a]+score
    print(score)
     
    Dictionnaire=open("Dictionnaire.txt","r")
    Contenu=Dictionnaire.readlines()
    n=len(Contenu)
    for k in range(0,n-1):
            Contenu[k]=Contenu[k].replace("\n","")
    print(Contenu)
    if mot in Contenu:
        print("Mot Valide !")
    Merci d'avance !

    Batmai

  2. #2
    Membre régulier
    Homme Profil pro
    employé
    Inscrit en
    Mars 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2015
    Messages : 75
    Points : 103
    Points
    103
    Par défaut
    Salut,

    C'est normal vu que lorsque tu import le dictionnaire et que contenu = dictionnaire.readline(), ton contenu est égal tout les mots dans ton fichier fichier.
    ce qui veut dire que contenu = "mot1 mot2 mot3 etc..." au lieu de "mot1", "mot2".

    Voila pourquoi il ne trouve pas les mots


  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par papyfouette Voir le message
    C'est normal vu que lorsque tu import le dictionnaire et que contenu = dictionnaire.readline(), ton contenu est égal tout les mots dans ton fichier fichier.
    Ca ça aurait été le comportement de la fonction read() et non readline() (qui ne lit qu'une ligne) et qu'il n'utilise même pas puisque lui il utilise readlines() qui place chaque ligne dans un tableau. Il se retrouve donc avec un tableau où chaque item est une ligne de son fichier. Et comme son fichier contient un mot par ligne, cette démarche est correcte (bien que super gourmande question mémoire)...

    Citation Envoyé par Batmai Voir le message
    Mon problème est que lorsque je fais "if mot in Contenu" est bien le programme me trouve pas le mot.
    C'est triste de voir une telle orthographe quand on est en terminale. Ensuite, bien quand il faudra écrire sa lettre de motivation pour trouver un emploi...

    PS: pas de "important" ou "urgent" ou tout autre adjectif de même nature dans le titre des topics. Les problèmes de tous sont tous importants et le tien ne l'est pas plus que les autres. A la limite, ça donne même envie de moins s'y intéresser que ceux des autres...

    Citation Envoyé par Batmai Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mot=input("mot:")
    mot.lower()
    Tu veux bien m'expliquer ces deux lignes ???

    Citation Envoyé par Batmai Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    b=len(mot)
    for i in range (b):
            a=Lettre.index(mot[i])
            score=Valeur[a]+score
    print(score)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for x in mot: score+=Valeur[Lettre.index(x)]
    print(score)
    Citation Envoyé par Batmai Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    n=len(Contenu)
    for k in range(0,n-1):
            Contenu[k]=Contenu[k].replace("\n","")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contenu=[x.replace("\n", "") for x in contenu]
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre régulier
    Homme Profil pro
    employé
    Inscrit en
    Mars 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2015
    Messages : 75
    Points : 103
    Points
    103
    Par défaut
    okay, j'ai mal vu et me suis donc trompé, désolé ! ^^"

  5. #5
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Les mots dans le fichier texte sont en minuscule et l'entrée d'un mot se fait en majuscule car les lettres du scrabble que nous utilisons sont en majuscule. Le "input" sert au test.

    En ce qui concerne l'orthographe, c'est pas le sujet du topic mais tu es libre de penser ce que tu veux.

    Pour le reste merci de ton aide.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,


    Citation Envoyé par Batmai Voir le message
    Les mots dans le fichier texte sont en minuscule et l'entrée d'un mot se fait en majuscule car les lettres du scrabble que nous utilisons sont en majuscule. Le "input" sert au test.
    Relisez ces 2 lignes de votre code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mot=input("mot:")
    mot.lower()
    Lorsqu'elles ont été exécutées, vous espérez que "mot" sera en minuscules.
    Mais ce n'est pas le cas: un string étant imutable, il faut récupérer le retour de la fonction pour l'assigner à "mot".
    i.e. faire comme çà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mot=input("mot:")
    mot = mot.lower()
    La comparaison devrait mieux marcher...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [Python 3.X] Aide Scrabble - Projet ISN Terminale S
    Par Batmai dans le forum Général Python
    Réponses: 10
    Dernier message: 18/05/2015, 10h51
  2. Aide au choix d'un projet ISN
    Par raphaelbellahsen dans le forum Programmation multimédia/Jeux
    Réponses: 15
    Dernier message: 09/09/2014, 07h33
  3. Aide projet ISN
    Par DiiKenZ dans le forum Général Python
    Réponses: 0
    Dernier message: 29/05/2014, 09h15
  4. Besoin d'aide pour projet ISN: jeu de plateau
    Par Stilishh dans le forum Programmation multimédia/Jeux
    Réponses: 4
    Dernier message: 17/05/2014, 07h39
  5. Aide python mini projet ISN
    Par Trirouson dans le forum Général Python
    Réponses: 22
    Dernier message: 19/12/2013, 20h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo