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”解释为数据类型
and的第一(和第二)行与OR和NAND的第一行不同。这就是问题所在。看到了吗
讽刺的是,您对OR和NAND进行了单元测试,但对and没有进行单元测试
相关问题 更多 >
编程相关推荐