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 :

[Python] Question plus que stupide (j'imagine)


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Par défaut [Python] Question plus que stupide (j'imagine)
    Bonjour bonsoir

    Je suis actuellement en TerS spé isn. J'ai donc un projet d'isn à faire.
    Mon projet un projet de cryptologie. Pendant que mes chères camarades s'amusent avec la crypto bien concrète. Moi je me bat contre la fenêtre graphique.
    Je vous explique mon pti problème:

    http://puu.sh/okDE3/45f892d61c.png

    Voici pour l'instant à quoi ressemble le "programme".
    -Je rentre un texte :ici : "Kappa 123"
    -J’appuie sur entrer, donc il s'affiche: "Cryptage: Ndssd#456"
    -Je clique sur décrypte, donc il s'affiche: "Message: Kappa 123"
    -Quand j'appuie sur définir clef, il s'affiche: "Clef:*****" Toujours au hasard."

    Le fait est, que le cryptage ce fait avec une clé de 3. Alors que je voudrait qu'il se fasse avec une clé "r" et au hasard.
    Je ne sait donc pas par quoi remplacer "+3" et "-3"
    J'ai essayer :" str(r)" et encore "int(3)"-
    Une erreur s'affiche. : http://puu.sh/okEmQ/cb5e6fe3f5.png

    Voilas voilas. Merci bonne journée

    PS:"Pour ce qui est des plus que possibles fautes d’orthographes, ne ne vous privez pas de les corrigées"

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 4
    Par défaut
    Bonjour,

    Je pense que t'on erreur viens du fait que tu utilise l’opérateur '%' sur ta variable r que tu transforme en chaîne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    >>> r=1754
    >>> print(r%1000000)
    1754
    >>> print(str(r)%1000000)
    Traceback (most recent call last):
      File "<pyshell#2>", line 1, in <module>
        print(str(r)%1000000)
    TypeError: not all arguments converted during string formatting

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Par défaut
    Possiblement. Mais j'ai besoin de ce %1000000 en tant que modulo.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Par défaut
    Ah, mais en effet, j'imagine que vous ne pouvez pas tester le programme si je ne le recopie pas x).

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    from tkinter import *
    from math import *
    from random import *
    r=''
     
    def clef():
        r=randint(0,999999) 
        cle.configure(text = 'Clef: '+str(r))
     
     
    def messagecrypter(event):
        chaine.configure(text = 'Cryptage: '+crypto(entree.get(),str(r)))
     
    def messagedecrypter():
        message = entree.get()
        l = crypto(entree.get(),3)
        yolo.configure(text = 'Message: '+decrypter(l,str(r)))
     
    def crypto(chaine,r):
        l=''
        for car in chaine:
            l+=chr((ord(car)+3)%1000000)
        return l
     
    def decrypter(l,r):
        s=''
        for car in l:
            s+=chr((ord(car)-3)%1000000)
        return s
     
     
    fenetre=Tk()
    entree=Entry(fenetre)
    entree.bind("<Return>",messagecrypter)
    entree.pack()
    chaine=Label(fenetre)
    chaine.pack()
    yolo=Label(fenetre)
    yolo.pack()
    cle=Label(fenetre)
    cle.pack()
    bou1=Button(fenetre,text='Decrypter',command=messagedecrypter)
    bou1.pack(side=BOTTOM)
    bou2=Button(fenetre,text='Définir clef',command=clef)
    bou2.pack(side=BOTTOM)
    fenetre.mainloop()
    Ridicule oublie de ma part.

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Ce n'est plus le même code qu'avec l'erreur.

    Tatamy à raison, tu uses du "%" sur la chaîne et non pas sur le nombre.

    "%" est un opérateur de formatage pour les chaînes de texte.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Par défaut
    Je voit, j'essaye différent chose mais rien n'y fait. Je n'arrive toujours à utiliser "r" à la place de "3"
    Car sans le "%1000000", le code n'est plus optimale. Car le cryptage ce fait en code ASCII, et ce modulo est nécessaire.
    Des idées?

Discussions similaires

  1. RJ45 question plus physique que logique
    Par sebatlante dans le forum Hardware
    Réponses: 1
    Dernier message: 19/09/2009, 19h51
  2. height: encore plus que 100%
    Par Anduriel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 23/06/2005, 13h56

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