我正在实现“XOR”函数,但它失败了

2024-04-26 01:11:24 发布

您现在位置:Python中文网/ 问答频道 /正文

import numpy as np

def AND(x1, x2):
    x = np.array(x1,x2)
    w = np.array(0.5,0.5)
    b = -0.7
    tmp = np.sum(w*x) + b 
    if tmp <= 0:
        return 0
    else:
        return 1

def NAND(x1, x2):
    x = np.array([x1, x2])
    w = np.array([-0.5, -0.5])
    b = 0.7
    tmp = np.sum(w*x) + b
    if tmp <= 0:
        return 0
    else:
        return 1

print(NAND(1,0))
print(NAND(1,1))

def OR(x1, x2):
    x = np.array([x1, x2])
    w = np.array([0.5, 0.5])
    b = -0.2
    tmp = np.sum(w*x) + b 
    if tmp <= 0:
        return 0
    else:
        return 1

print(OR(0,1))
print(OR(0,0))

def XOR(x1, x2):
    s1 = NAND(x1,x2)
    s2 = OR(x1,x2)
    y = AND(s1,s2)
    return y

print(XOR(0,1))

我完成了AND或NAND门。它们的工作原理和我预期的完全一样。最后,我尝试通过组合NAND,OR,和序列来制作XOR逻辑。。。但下面是我从未预料到的回溯错误消息。应该修改什么以实现我的原始目的

TypeError:无法将“1”解释为数据类型


Tags: orandreturnifdefnparrayelse
1条回答
网友
1楼 · 发布于 2024-04-26 01:11:24

and的第一(和第二)行与OR和NAND的第一行不同。这就是问题所在。看到了吗

讽刺的是,您对OR和NAND进行了单元测试,但对and没有进行单元测试

相关问题 更多 >