所以我是python编码语言的新手,我的任务是通过用户制作的随机关键字加密随机用户制作的消息。例如用户输入:Python并输入关键字:Help。因此,消息的第一个字母是P,第一个关键字字母是H,这意味着P应该按H的字母位置移动,即8,所以P现在将变为X.必须连续使用关键字,直到加密完成为止。这是我的代码:
def keyword():
w=[7,3,19,5]
x=""
g = 0
i=0
w2=input ("Please enter a KeyWord: ")
m=input ("Please enter a Message: ")
for ch in m:
en = chr(ord(ch)+ w2)
shift = (ord (w2[i%len(w2)]))
x= (x+en)
print(str(x))
keyword()
以下是给出的输出:
Please enter a KeyWord: lol
Please enter a Message: lol
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
keyword()
File "H:\t2test.py", line 22, in keyword
en = chr(ord(ch)+ w2)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
现在我正在尝试解决这个问题,如果你要说w2需要是一个整数而且它不能加密 - 我现在知道我正在寻找一种方法来使这个代码工作。帮助将受到高度赞赏。
答案 0 :(得分:1)
ord(ch)
是一个int,它应该是一个字符串
试试这个:
num = str(ord(ch)) + w2
en = chr(int(num))