Problemes fonction python

tatayet10 Messages postés 1 Date d'inscription mardi 22 mai 2018 Statut Membre Dernière intervention 23 mai 2018 - 23 mai 2018 à 14:56
lugdanum Messages postés 108 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 14 novembre 2021 - 28 mai 2018 à 21:32
Je cherche à coder un programme de cryptographie et je bloque sur une fonction qui me renvoie une erreur que je ne comprend pas.

voici mon code :
from tkinter import *

#-------------------------On définis les fonctions--------------------------
liste = []
liste1 = []


def lettre(n):
return chr(n+65)

def num(caractere):
return ord(caractere)-65



def fn1() :
def valider() :
a = s.get()
b = sp1.get()
c = sp2.get()
liste[:] = [a, b, c]


return liste
fn.destroy



fn = Toplevel()
fn.geometry("300x200")

messagenoncodé = Label(fn, text = "Votre message doit être en majuscules uniquement!").pack()

entryVar = StringVar()
s = Entry( fn, textvariable = StringVar() )
s.pack( side=TOP )

cond1 = Label(fn, text="Le premier coéfficient doit être impair !").pack()

spinVar1 = IntVar()
sp1 = Spinbox( fn, from_=0, to=26, textvariable = IntVar() )
sp1.pack()

spinVar2 = IntVar()
sp2 = Spinbox( fn, from_=0, to=999, textvariable = IntVar() )
sp2.pack()

Canvas(fn, width = 50, height = 10).pack()

but1 = Button(fn, text ='Valider', command = valider).pack(side = LEFT, padx = 3, pady = 3)
but4 = Button(fn, text= 'Chiffrer', command = codage).pack(side = TOP, padx = 3, pady = 3)
but2 = Button(fn, text ='Dechiffrer').pack(side = RIGHT, padx = 3, pady = 3)
but3 = Button(fn, text = 'Quitter', command = fn.destroy).pack(side = BOTTOM, padx = 3, pady = 3)

lab = Label(fn).pack


def codage() :

C = 0
x = liste[0]
for C in x :
y = (num(C)*liste[1]+liste[2])%26
liste1.append(y)
print(liste1)
print("est votre message codé !")



et voici l'erreur :

Traceback (most recent call last):
File "F:\EduPython\App\lib\tkinter\__init__.py", line 1538, in __call__
return self.func(*args)
File "F:\Projet cryptographie\ISN\programme.py", line 63, in codage
y = (num(C)*liste[1]+liste[2])%26
TypeError: not all arguments converted during string formatting


Merci pour l'attention portée à mon programme.

1 réponse

lugdanum Messages postés 108 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 14 novembre 2021
28 mai 2018 à 21:32
Hello

J'ai compilé avec Sublime Text (Python 2.7) et là seule erreur que ton code m'a renvoyée était sur ta variable messagenoncodé (messagenoncode):
messagenoncodé = Label(fn, text = "Votre message doit être en majuscules uniquement!").pack()

--> replacé par : messagenoncode=....


Sinon 0 retour, tu codes sur quelle appli et avec quelle version de python ?
0
Rejoignez-nous