Travailler sur un simple programme de cryptographie (très simple, ridiculement faible) pour une mission, et il me semble être en cours d'exécution dans la même erreur quelle que soit la façon dont je vais parler.caractères dans une chaîne remplacement en Python
def cryptofied(text, dic):
for i, j in dic.items():
text = text.replace(i, j)
return text
EDIT: maintenant en utilisant def cryptofied (texte, dic): ret = "" pour p dans la gamme (LEN (texte)): ret + = dic [texte [p]] retour ret
Et
def encode(codedMsg):
print(codedMsg, ' Here was your message to be encoded.')
lock = {'A':'X', 'B':'P', 'C':'M', 'D':'G', 'E':'T', 'F':'D', 'G':'H', 'H':'L', 'I':'Y', 'J':'O', 'K':'N', 'L':'Z', 'M':'B', 'N':'W', 'O':'E', 'P':'A', 'Q':'R', 'R':'K', 'S':'J', 'T':'U', 'U':'F', 'V':'S', 'W':'C', 'X':'I', 'Y':'Q', 'Z':'V'}
codedMsgTest = cryptofied(codedMsg, lock)
print(codedMsgTest, 'here is your coded message')
Cependant, quand je entrée, par exemple, "franc" comme codedMsg, il recracher à "GKXCC", ce qui est manifestement faux. D'après ce que je peux dire, le problème est qu'il change le "K" en "N", puis en changeant les deux instances de "N" en "C". Que puis-je faire pour l'éliminer? Donc, le problème avec ce code maintenant est que si un caractère est utilisé qui n'est pas dans mon verrou, une erreur revient. Comment puis-je ignorer ces personnages?
Bienvenue dans StackOverflow! Merci pour cette excellente question - peu de nouveaux utilisateurs écrivent des questions aussi bonnes que celle-ci. C'est un plaisir de vous avoir ici et j'espère que vous apprécierez de contribuer à ce site à l'avenir. –