如何用自定义modu修复“不能分配给操作员”错误

2024-05-23 18:44:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个caesar密码,我创建了自己的dictionary模块并调用了for循环。该代码应该获取输入消息的i索引并将其转换为数字(通过dictionary模块)添加密码输入,将其转换回新的加密字母,然后打印出来。问题是,当我运行它时,我得到一个错误消息,说不能分配给操作员。我怎样才能解决这个问题?你知道吗

我试图改变我的范围,但我担心这可能是我的模块的东西。我不太明白错误信息,你能帮我找出编码错误吗?你知道吗

这是我的模块代码:

>>> import pprint, shelve, os, sys, shutil
>>> alphanum = {'a':1,'b':2,'c':3,'d':4,'e':5,'f':6,'g':7,'h':8,'i':9,'j':10,'k':11,'l':12,'m':13,'n':14,'o':15,'p':16,'q':17,'r':18,'s':19,'t':20,'u':21,'v':22,'w':23,'x':24,'y':25,'z':26}
>>> pprint.pformat(alphanum)
"{'a': 1,\n 'b': 2,\n 'c': 3,\n 'd': 4,\n 'e': 5,\n 'f': 6,\n 'g': 7,\n 'h': 8,\n 'i': 9,\n 'j': 10,\n 'k': 11,\n 'l': 12,\n 'm': 13,\n 'n': 14,\n 'o': 15,\n 'p': 16,\n 'q': 17,\n 'r': 18,\n 's': 19,\n 't': 20,\n 'u': 21,\n 'v': 22,\n 'w': 23,\n 'x': 24,\n 'y': 25,\n 'z': 26}"
>>> AlphaCaesar = open('Caesar.py','w')
>>> AlphaCaesar.write('alphanum = {} \n'.format(pprint.pformat(alphanum)))
263
>>> AlphaCaesar.close()
>>> import Caesar
>>> Caesar.alphanum
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7, 'h': 8, 'i': 9, 'j': 10, 'k': 11, 'l': 12, 'm': 13, 'n': 14, 'o': 15, 'p': 16, 'q': 17, 'r': 18, 's': 19, 't': 20, 'u': 21, 'v': 22, 'w': 23, 'x': 24, 'y': 25, 'z': 26}

这是我的凯撒密码程序代码:

import Caesar
alphavalues = Caesar.alphanum
print('enter your message to encrypt')
message = input()
print('enter the cipher number')
ciphernum = input()
for i in range(0,len[encryption]):
    alphavalues[message[i]] + int(ciphernum) = newcaesaralpha
    print(alphavalues[newcaesaralpha])

Tags: 模块代码import消息密码messagefordictionary
1条回答
网友
1楼 · 发布于 2024-05-23 18:44:39

你把作业倒过来了。newcaesaralpha是目标,必须出现在左侧。另外,您需要使用%来确保总和在1到26之间。你知道吗

newcaesaralpha = (alphavalues[message[i]] - 1 + int(ciphernum)) % 26 + 1

(如果将字母表编号为0到25,而不是1到26,则算法更简单。)

相关问题 更多 >