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 :

Repérage de lettres identiques


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Repérage de lettres identiques
    Bonjour je débute en python et pour mon projet de fin d'année je fais appel à une fonction que j'ai créer qui parcours le premier mot que l'utilisateur rentre pour en déterminer les lettres identiques.
    voilà mon code :

    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
    global l,Z
    l=[]
     
    z=input("message chiffré :\n")
    Z=z.split()
     
     
    def lettres_identiques(Z):
        chaine=[]
        for i in range(len(Z[0])-1):
            for j in range(len(Z[0])):      #prourquoi pas len(Z[0])-1 ?
                if Z[0][i]==Z[0][j] and i!=j:
                    chaine=["ligne["]+[str(i)]+["]==ligne["]+[str(j)]+["] and "]
                    l.append("".join(chaine))
     
    lettres_identiques(Z)
    chaine2="".join(l)
    for i in chaine2:
        if i==0 or i==1 or i==2 or i==3 or i==4 or i==5 or i==6 or i == 7 or i == 8 or i==9:
            i=int(i)
    fichier = open("/Users/brunojanuel/Desktop/decryptage dictionnaire.txt","r")  #le fichier qui est appelé est un dictionnaire numérique de langue française
    for ligne in fichier:
        if len(ligne)==len(Z[0])+1 and chaine2[:-4]==True :
                print(ligne)
    Je ne comprend pas pourquoi malgré ma condition chaine2[:-4]==True, le programme l'ignore. J'ai beau essayé de transformer à nouveau tous les chiffres de chaine2 en entier le programme ne le reconnait pas.
    Que faire ? Merci de votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 059
    Points : 1 396
    Points
    1 396
    Par défaut
    Je pige pas ce que fait ce code
    Donne donc un exemple d'entrée/sortie

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par josmiley Voir le message
    Je pige pas ce que fait ce code
    Donne donc un exemple d'entrée/sortie
    J'explique : dans mon projet de fin d'année , je fait un mini-décodeur de messages. On se base sur l'alphabet ASCII. On associe à chaque caractères ASCII une lettre de l'alphabet.
    Ainsi si l'utilisateur entre: "z=/./. /./. /./." le programme sépare cette chaîne de caractères en une liste à l'aide des espaces : les espaces ne sont pas codés.
    On obtient donc une liste tels que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Z=['/./.','/./.','/./.']
    On prend alors le premier élément de la liste et on l'analyse:. Dans mon code, la fonction lettres_identiques identifie les lettres qui sont identiques entre autre Z[0][0]==Z[0][2] et Z[0][1]==Z[0][3].
    J'obtient en sortie de la fonction lettres_identiques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l=['ligne[0]==ligne[2] and ', 'ligne[1]==ligne[3] and ', 'ligne[2]==ligne[0] and ']
    Je réunis chaque morceaux de la liste en la variable chaine2 et je l'insère dans ma boucle if en enlevant le 'and' final grâce à l'indiçage chaine2[:-4].

    A partir de fichier j'ouvre un document texte regroupant tout les mots de la langue française mais sans aucun accent : exemple: être devient etre et je recherche le mot entré par l'utilisateur à l'aide de deux paramètres: la taille du mot et la position des lettres identiques qui le composent.

    Voilà.

    La question est la suivante : pourquoi le paramètre de la position des lettres identiques n'est pas pris en compte ? et comment faire ?

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    A la moindre question, incompréhension... Ne pas hésité. J'essaierai de répondre... C'est vraiment important.

Discussions similaires

  1. [SQL] Adresse Email - Lettres identiques consécutives
    Par VuVietHai dans le forum SAS Base
    Réponses: 5
    Dernier message: 02/06/2014, 16h41
  2. Réponses: 1
    Dernier message: 20/04/2012, 09h35
  3. Un bigramme peut-il être constitué de deux lettres identiques ?
    Par nina2007 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 29/12/2011, 12h34
  4. [VBA-E] lettre identique dans onglet
    Par guismoman33 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 07/02/2007, 11h02
  5. Comment compter le nombre de lettre identique ?
    Par divableue dans le forum ASP
    Réponses: 3
    Dernier message: 07/11/2003, 15h01

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