Partage
  • Partager sur Facebook
  • Partager sur Twitter

Programme pour code vigenere

    18 décembre 2016 à 12:12:31

    Bonjour,

    je suis actuellement en train de réalisé un programme pour codé un  message avec le code vigenere.

    Je voulais savoir si vous aviez des conseils ou des astuces.

    Voici déjà le début de mon code

    # -*-coding:Utf-8 -*
    from tkinter import *#pour la gestion des fenêtres
    
    def vigenere():
    	code =""
    	sTexte = mon_texte.get()    # On place dans sTexte le contenu placé dans le texte mon_texte de l'Entry wid_affichage
    	sCode = mon_code.get()
    	sTexte = sTexte.lower() #On met tout les caracteres en minuscules
    	sCode = sCode.lower() #On met tout les caracteres en minuscules mon_code.set(code) #on assigne a la variable Tkinker "mon_code" le string "code"
    #Partie a finir
    
    # CREATIONS DE LA FENETRE ET DES WIDGETS QUI LA COMPOSE
    
    # CREATION DE L'OBJET FENETRE
    fen_princ = Tk()
    
    # CREATION DE LA ZONE LABEL-TITRE
    mon_titre = StringVar()# On crée un objet StringVar(chaine de caracteres variable)
    mon_titre.set("PROGRAMME DE CODAGE/DECODAGE DE LA TABLE DE VIGENERE")# On définit le texte
    wid_affichage = Label(fen_princ, textvariable=mon_titre)# Création de l'objet-Label associée à mon_titre
    wid_affichage.pack()# On rajoute le widget à la fenêtre
    
    # CREATION DE LA ZONE DE LECTURE
    mon_texte = StringVar()# On crée un objet StringVar
    mon_texte.set("INSEREZ ICI VOTRE TEXTE")# On définit le texte affiché au début
    wid_entree = Entry(fen_princ, textvariable=mon_texte, width=100)# Création de l'objet-Entry où on placera le texte à coder/décoder
    wid_entree.pack()# On rajoute le widget à la fenêtre
    
    # CREATION DE LA ZONE DE LECTURE
    texte = StringVar()# On crée un objet StringVar
    texte.set("Clé de codage")# On définit le texte affiché au début
    wid_entree2 = Entry(fen_princ, textvariable=mon_code, width=100)# Création de l'objet-Entry où on placera le texte à coder/décoder
    wid_entree2.pack()# On rajoute le widget à la fenêtre
    
    
    # Création d'un Button lancant le vigeenere
    wid_boutonCode = Button(fen_princ, text="Activer la table de vigenere", command=vigenere)# Création de l'objet-Button qui activera la fonction vigenere
    wid_boutonCode.pack()# On rajoute le widget à la fenêtre
    
    # CREATION DE LA ZONE DE RESTITUTION après codage
    mon_code = StringVar()# On crée un objet StringVar
    mon_code.set("--- C'est ici qu'apparaitra le texte codé ou décodé ---")# On initialise le texte codé/décodé en chaîne vide
    wid_affichage2 = Entry(fen_princ, textvariable=mon_code, fg="#1A1682",width=100)# Création de l'objet-Entry où on affichera le texte codé/décodé
    wid_affichage2.pack()#On rajoute le widget à la fenêtre
    
    
    
    
    # Lancement de la boucle de surveillance sur la fenêtre fen_princ
    fen_princ.mainloop()



    -
    Edité par CriptoLabsPro 18 décembre 2016 à 12:14:40

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      18 décembre 2016 à 15:56:17

      Tu utilises beaucoup StringVar et set, il serait gagnant de créer une fonction pour éviter les écritures répétitives...

      • Partager sur Facebook
      • Partager sur Twitter
        20 décembre 2016 à 19:25:22

        Peux tu me donner un exemple ?
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          20 décembre 2016 à 20:55:11

          Un truc de ce style je pense...

          def create_var(string):
              s = StringVar()
              s.set(string)
              return s
          
          mon_texte = create_var("INSEREZ ICI VOTRE TEXTE")



          • Partager sur Facebook
          • Partager sur Twitter
            20 décembre 2016 à 21:06:19

            Et puis il n'y a pas besoin d'associer une StringVar à chaque widget. Par exemple pour le Label ce n'est pas nécessaire:

            wid_affichage = Label(fen_princ, text="PROGRAMME DE CODAGE/DECODAGE DE LA TABLE DE VIGENERE")
            wid_affichage.pack()


            Et même pour les Entry, on peut récupérer directement leur valeur grâce à leur méthode get. Il n'y a donc pas nécessairement besoin d'associer à chaque Entry une StringVar (sauf si ça fait partie des bonnes pratiques tkinter, mais je ne pense pas).

            PS: Un commentaire par ligne, est-ce vraiment nécessaire? (question rhétorique, la réponse est non ;))

            • Partager sur Facebook
            • Partager sur Twitter
            Précepte: Le mieux est l'ennemi du bien

            Programme pour code vigenere

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown