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))
所以我是 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))