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 :

Demande d'aire pour un dictionnaire


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Demande d'aire pour un dictionnaire
    Bonjour,
    J'aimerai savoir comment écrire se programme avec un dictionnaire car ici avec les boucles le programme est très long et très répétitif car il test toutes les lettres avant de trouvé la bonne :s



    with open("test32.txt", "r") as source:
    chaine = source.read()

    chaine1 = ""

    for c in chaine:
    if c=="a":
    chaine1 += "11"
    elif c=="b":
    chaine1 +="12"
    elif c=="c":
    chaine1 +="13"
    elif c=="d":
    chaine1 +="14"
    .....

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 14
    Points
    14
    Par défaut complément
    Voici en pièce jointe le programme car je ne sais pas comment afficher le programme dans le cadre
    Merci
    Fichiers attachés Fichiers attachés

  3. #3
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Avec un dictionnaire c'est facilement faisable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >>> ord('a')
    97
    >>> ord('z')
    122
    >>> dico = {}
    >>> for n in range(97, 123):
    ...     dico[chr(n)] = str(n-86)
    ... 
    >>> dico
    {'z': '36', 'y': '35', 'x': '34', 's': '29', 'r': '28', 'q': '27', 'p': '26', 'w': '33', 'v': '32', 'u': '31', 't': '30', 'k': '21', 'j': '20', 'i': '19', 'h': '18', 'o': '25', 'n': '24', 'm': '23', 'l': '22', 'c': '13', 'b': '12', 'a': '11', 'g': '17', 'f': '16', 'e': '15', 'd': '14'}
    >>> 
    >>> dico['a']
    '11'
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Ce que je voudrais faire en gros c'est prendre une chaine de caractère et remplacer chaque termes par d'autres termes définies dans le dictionnaire:

    dic_crypt=("\n":"00"),("\"":"01"),("!":"02"),(" ":"03"),("%":"04"),("&":"05"),("\'":"06"),("(":"07"),(")":"08"),("*":"09"),("+":"10"),(",":"11"),("-":"12"),(".":"13"),("/":"14"),("0":"15"),("1":"16"),("2":"17"),("3":"18"),("4":"19"),("5":"20"),("6":"21"),("7":"22"),("8":"23"),("9":"24"),(":":"25"),(";":"26"),("<":"27"),("=":"28"),(">":"29"),("?":"30"),("@":"31"),("A":"32"),("B":"33"),("C":"34"),("D":"35"),("E":"36"),("F":"37"),("G":"38"),("H":"39"),("I":"40"),("J":"41"),("K":"42"),("L":"43"),("M":"44"),("N":"45"),("O":"46"),("P":"47"),("Q":"48"),("R":"49"),("S":"50"),("T":"51"),("U":"52"),("V":"53"),("W":"54"),("X":"55"),("Y":"56"),("Z":"57"),("[":"58"),("]":"59"),("a":"60"),("b":"61"),("c":"62"),("d":"63"),("e":"64"),("f":"65"),("g":"66"),("h":"67"),("i":"68"),("j":"69"),("k":"70"),("l":"71"),("m":"72"),("n":"73"),("o":"74"),("p":"75"),("q":"76"),("r":"77"),("s":"78"),("t":"79"),("u":"80"),("v":"81"),("w":"82"),("x":"83"),("y":"84"),("z":"85"),("{":"86"),("}":"87"),("~":"88"),("à":"89"),("â":"90"),("ç":"91"),("é":"92"),("è":"93"),("ê":"94"),("î":"95"),("ï":"96"),("ô":"97"),("ù":"98"),("û":"99")

    Comme ceux la est que par exemple si j'ai "Coucou" cela me donne 627480627480. J'ai deja reussi a le faire mais avec .replace mais cela prend beaucoup de place :s

  5. #5
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    J'ai du mal à comprendre votre problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    result = ''
    for letter in "Coucou":
        result += dic_crypt[letter]
    print(result)
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Écrire une commande qui ouvre un fichier texte, parcourir l'ensemble du fichier, remplacer certains caractères par d'autres que j'ai au préalable mis dans un dictionnaire qui est celui-ci:

    dic_crypt={"\n":"00","\"":"01","!":"02"," ":"03","%":"04","&":"05","\'":"06","(":"07",")":"08","*":"09","+":"10",",":"11","-":"12",".":"13","/":"14","0":"15","1":"16","2":"17","3":"18","4":"19","5":"20","6":"21","7":"22","8":"23","9":"24",":":"25",";":"26","<":"27","=":"28",">":"29","?":"30","@":"31","A":"32","B":"33","C":"34","D":"35","E":"36","F":"37","G":"38","H":"39","I":"40","J":"41","K":"42","L":"43","M":"44","N":"45","O":"46","P":"47","Q":"48","R":"49","S":"50","T":"51","U":"52","V":"53","W":"54","X":"55","Y":"56","Z":"57","[":"58","]":"59","a":"60","b":"61","c":"62","d":"63","e":"64","f":"65","g":"66","h":"67","i":"68","j":"69","k":"70","l":"71","m":"72","n":"73","o":"74","p":"75","q":"76","r":"77","s":"78","t":"79","u":"80","v":"81","w":"82","x":"83","y":"84","z":"85","{":"86","}":"87","~":"88","à":"89","â":"90","ç":"91","é":"92","è":"93","ê":"94","î":"95","ï":"96","ô":"97","ù":"98","û":"99"}

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Voilà j'ai reussi le programme je vous montres a quoi il ressemble
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    with open("Readme.txt", "r") as source:
    	contenu = source.read()
     
     
    index={"\n":"00","\"":"01","!":"02"," ":"03","%":"04","&":"05","\'":"06","(":"07",")":"08","*":"09","+":"10",",":"11","-":"12",".":"13","/":"14","0":"15","1":"16","2":"17","3":"18","4":"19","5":"20","6":"21","7":"22","8":"23","9":"24",":":"25",";":"26","<":"27","=":"28",">":"29","?":"30","@":"31","A":"32","B":"33","C":"34","D":"35","E":"36","F":"37","G":"38","H":"39","I":"40","J":"41","K":"42","L":"43","M":"44","N":"45","O":"46","P":"47","Q":"48","R":"49","S":"50","T":"51","U":"52","V":"53","W":"54","X":"55","Y":"56","Z":"57","[":"58","]":"59","a":"60","b":"61","c":"62","d":"63","e":"64","f":"65","g":"66","h":"67","i":"68","j":"69","k":"70","l":"71","m":"72","n":"73","o":"74","p":"75","q":"76","r":"77","s":"78","t":"79","u":"80","v":"81","w":"82","x":"83","y":"84","z":"85","{":"86","}":"87","~":"88","à":"89","â":"90","ç":"91","é":"92","è":"93","ê":"94","î":"95","ï":"96","ô":"97","ù":"98","û":"99"}
     
    for cle in index:
    	contenu = contenu.replace(cle, index[cle])
    print(contenu)	
     
    with open("test_codé.txt", "w") as destination:
    	destination.write(contenu)

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Mais voila j'ai une autre question qui est la suivante je voudrais modifier le programme suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    with open("test_codé.txt", "r") as source:
    	contenu = source.readline()
     
    index={"00":"\n", "01":"\"", "02":"!", "03":" ", "04":"%", "05":"&", "06":"\'", "07":"(", "08":")", "09":"*", "10":"+", "11":",", "12":"-", "13":".", "14":"/", "15":"0", "16":"1", "17":"2", "18":"3", "19":"4", "20":"5", "21":"6", "22":"7", "23":"8", "24":"9", "25":":", "26":";", "27":"<", "28":"=", "29":">", "30":"?", "31":"@", "32":"A", "33":"B", "34":"C", "35":"D", "36":"E", "37":"F", "38":"G", "39":"H", "40":"I", "41":"J", "42":"K", "43":"L", "44":"M", "45":"N", "46":"O", "47":"P", "48":"Q", "49":"R", "50":"S", "51":"T", "52":"U", "53":"V", "54":"W", "55":"X", "56":"Y", "57":"Z", "58":"[", "59":"]", "60":"a", "61":"b", "62":"c", "63":"d", "64":"e", "65":"f", "66":"g", "67":"h", "68":"i", "69":"j", "70":"k", "71":"l", "72":"m", "73":"n", "74":"o", "75":"p", "76":"q", "77":"r", "78":"s", "79":"t", "80":"u", "81":"v", "82":"w", "83":"x", "84":"y", "85":"z", "86":"{", "87":"}", "88":"~", "89":"à", "90":"â", "91":"ç", "92":"é", "93":"è", "94":"ê", "95":"î", "96":"ï", "97":"ô", "98":"ù", "99":"û"}
     
    for cle in index:
    	contenu = contenu.replace(cle, index[cle])
    print(contenu)	
     
    with open("test36.txt", "w") as destination:
    	destination.write(contenu)
    Sur celui-ci si vous l’avez bien compris il sert a décrypter le premier texte qui a été crypter avec le programme suivant. Mon problème est le suivant je souhaiterai que la boucle prenne les termes 2 par 2

  9. #9
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Points : 692
    Points
    692
    Par défaut
    Salut,
    Ça devrait te dépanner (solution pour Python 3) :
    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
    #!/usr/bin/env python
    # -*- coding:Utf-8 -*-
    idx={"00":"\n", "01":"\"", "02":"!", "03":" ", "04":"%", "05":"&", "06":"\'", "07":"(", "08":")", "09":"*", "10":"+", "11":",", "12":"-", "13":".", "14":"/", "15":"0", "16":"1", "17":"2", "18":"3", "19":"4", "20":"5", "21":"6", "22":"7", "23":"8", "24":"9", "25":":", "26":";", "27":"<", "28":"=", "29":">", "30":"?", "31":"@", "32":"A", "33":"B", "34":"C", "35":"D", "36":"E", "37":"F", "38":"G", "39":"H", "40":"I", "41":"J", "42":"K", "43":"L", "44":"M", "45":"N", "46":"O", "47":"P", "48":"Q", "49":"R", "50":"S", "51":"T", "52":"U", "53":"V", "54":"W", "55":"X", "56":"Y", "57":"Z", "58":"[", "59":"]", "60":"a", "61":"b", "62":"c", "63":"d", "64":"e", "65":"f", "66":"g", "67":"h", "68":"i", "69":"j", "70":"k", "71":"l", "72":"m", "73":"n", "74":"o", "75":"p", "76":"q", "77":"r", "78":"s", "79":"t", "80":"u", "81":"v", "82":"w", "83":"x", "84":"y", "85":"z", "86":"{", "87":"}", "88":"~", "89":"à", "90":"â", "91":"ç", "92":"é", "93":"è", "94":"ê", "95":"î", "96":"ï", "97":"ô", "98":"ù", "99":"û"}
     
    dico = { v : k for k, v in idx.items() }
    rev  = { v : k for k, v in dico.items() }
     
    if __name__ == '__main__':
        mssg = 'beautiful is better than ugly'
        print(mssg)
     
        crypt = "".join([ dico.get(c) for c in mssg])
        print(crypt)
     
        import re
        mssg = "".join([ rev.get(c) for c in re.findall('..', crypt)])
        print(mssg)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    beautiful is better than ugly
    6164608079686580710368780361647979647703796760730380667184
    beautiful is better than ugly

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    J te remercie de ton aide c'est sympa, mais vu que je débute connais pas forcement tout ce que tu as écris il me reste plus qu'a comprendre 2 ou 3 petite chose et j'aurai atteint mon but.

    Je tiens a remercier toutes les personnes qui m'ont aidés sur ceux post
    Je vous en remercie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Demande d'aide pour une requête
    Par arkzor dans le forum Requêtes
    Réponses: 3
    Dernier message: 28/12/2004, 02h40
  2. Demande de conseil pour migration de lignes vers colonnes
    Par ririd dans le forum Administration
    Réponses: 6
    Dernier message: 04/11/2004, 17h02
  3. Combien demander en "défraiements" pour une association
    Par Anne1969 dans le forum Association
    Réponses: 9
    Dernier message: 21/09/2004, 12h01
  4. [TPW][cours]Demande d'aide pour finir un programme
    Par jf dans le forum Turbo Pascal
    Réponses: 21
    Dernier message: 16/06/2003, 18h10

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