Problemes fonction python

tatayet10 1 Messages postés mardi 22 mai 2018Date d'inscription 23 mai 2018 Dernière intervention - 23 mai 2018 à 14:56 - Dernière réponse : lugdanum 21 Messages postés vendredi 13 mai 2005Date d'inscription 29 juin 2018 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

1 réponse

lugdanum 21 Messages postés vendredi 13 mai 2005Date d'inscription 29 juin 2018 Dernière intervention - 28 mai 2018 à 21:32
0
Merci
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 ?
Commenter la réponse de lugdanum

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.