Python 加密程序不工作-类型错误:字符串索引必须是整数,而不是str

Python 加密程序不工作-类型错误:字符串索引必须是整数,而不是str,python,encryption,xor,Python,Encryption,Xor,我一直在开发一个加密程序,它只将字符串加密为十进制值,并将编写另一个程序对其进行解密。目前,它对十进制值不做任何处理,但当我尝试对用于加密的二进制文件进行异或运算时,它会返回错误 Traceback (most recent call last): File "./enc.py", line 53, in <module> encrypt() File "./enc.py", line 35, in encrypt val1 = text2[i] +

我一直在开发一个加密程序,它只将字符串加密为十进制值,并将编写另一个程序对其进行解密。目前,它对十进制值不做任何处理,但当我尝试对用于加密的二进制文件进行异或运算时,它会返回错误

    Traceback (most recent call last):
  File "./enc.py", line 53, in <module>
    encrypt()
  File "./enc.py", line 35, in encrypt
    val1 = text2[i] + decryptionKey[j]
  TypeError: string indices must be integers, not str
如果方便的话,您还可以查看source@

这不会给出列表的索引,而是字符串的实际字符作为字符串。您可能想使用

比如说,

text2 = "Welcome"
for i in text2:
    print i,
将打印

W e l c o m e
但是

将给予

0 W
1 e
2 l
3 c
4 o
5 m
6 e

等等,这是否将数组视为字符数组?我希望它是一个十进制数组。。。很抱歉成为Python Noob,但解释器就是这么看的吗?@RyTransmish如果使用带字符串的普通for循环,它将作为字符数组进行迭代。由于python中没有char数据类型,所以每个char在python中都被视为字符串。但这是一个字符/字符串数组吗?我很困惑:(.我本来希望这是一个用于数字操作的二进制或十进制数组。有什么地方出错了吗?
text2=''。join(text2)
这一行将所有内容转换为字符串。
text2 = "Welcome"
for i in text2:
    print i,
W e l c o m e
text2 = "Welcome"
for i, char in enumerate(text2):
    print i, char
0 W
1 e
2 l
3 c
4 o
5 m
6 e