不支持的操作数类型为 - :'str'和'str' - 获取此错误,我不知道为什么
问题描述:
目前正在创建一个Cesears密码,特别是解密。不支持的操作数类型为 - :'str'和'str' - 获取此错误,我不知道为什么
for char in decryptString:
x = ord(char)
x = x - decryptVal #this is my negative shift
if x < 32:
x = x + 32
elif x > 126:
x = x - 95
result = result - chr(x)
print('')
print('Decrypted string: ')
print(result)
而且我经常收到:
TypeError: unsupported operand type(s) for -: 'str' and 'str'
我解密的消息,而不是
不知道为什么,希望得到一些见解:)
答
你不能减去一个字符串关掉另一个字符串 - 这就是这个错误告诉你的东西(你可能错过了' - ','不支持的操作数类型( - )',因为它看起来像一个 - :)。
如果我正确理解您打算执行的操作,您希望将转换后的字符添加到输出字符串result
中。字符串支持+
进行连结这样做:
result = result + chr(x)
您还需要在循环之前初始化result
,即.. result = ''
是什么''decryptVal?你也从结果中减去'chr'(字符串),你不能从任何东西中减去字符 – jamylak 2013-05-01 13:06:37
结果是否需要先初始化? – 2013-05-01 13:07:07
哪一行发生错误? 'result = result - chr(x)'? – thegrinner 2013-05-01 13:07:35