Python 3.3 + 不支持的操作数类型:'int' 和 'str'

Python 3.3 Unsupported operand type(s) for +: 'int' and 'str'

所以我是 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 需要是一个整数并且它不能加密 - 我知道现在我正在寻找一种方法来制作这个代码工作。将不胜感激。

ord(ch)是int,应该是string

试试这个:

num = str(ord(ch)) + w2
en = chr(int(num))