0

我正在学习 python 你能帮我解决这个 galois 字段 xor 的代码吗?

def generateGF(a,b):
    for x in range(a**b-1):
        for y in range(a**b-1):
            a[x][y] = bin(x)[2:].zfill(3) + bin(y)[2:].zfill(3) # limited for 2^3
    for i in range(a**b):
         for j in range(a**b):
             print(bin(z[i][j]),end=' ')
         print("\n")
print (generateGF(2,3))

我得到这个错误

python lab5.py                             :(
Traceback (most recent call last):
  File "lab5.py", line 9, in <module>
    print (generateGF(2,3))
  File "lab5.py", line 4, in generateGF
    a[x][y] = bin(x)[2:].zfill(3) + bin(y)[2:].zfill(3) # limited for 2^3
TypeError: 'int' object is not subscriptable
4

1 回答 1

1

问题是你在一行上有太多的表达式,所以很难准确地确定哪个整数被下标。

拆分表达式:

a[x][y] = bin(x)[2:].zfill(3) + bin(y)[2:].zfill(3)

是相同的:

filled_x = bin(x)[2:].zfill(3)
filled_y = bin(y)[2:].zfill(3)

a[x][y] = filled_x + filled_y

然后你就会知道哪个下标导致了错误。

(实际上,从技术上讲,您也可能需要拆分a[x][y],但从您的测试数据中我们可以看到a是 2,所以这就是导致问题的原因)

于 2017-02-13T08:31:47.567 回答