问题1:调用函数后运行无打印值
import numpy as np
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
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
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 XOR(x1,x2):
s1 = NAND(x1,x2) #s1是与非门的输出
s2 = OR(x1,x2) #s2是或门的输出
y = AND(s1,s2) #将s1与s2当做与门的输入 输出y
return y
XOR(0,0)
XOR(1,0)
XOR(0,1)
XOR(1,1)
原因是在最后四行中没有加上print语句
为什么Python定义函数用return返回数值,在运行后结果没有显示出来?
在 py 文件写python 代码如果不用 print 打印出来,结果是不会自动打印出来的,如下才对:
def f2(x, y): return x + y print(f2(3, 4))
问题2:打印调用结果为none
import numpy as np
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
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
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 XOR(x1,x2):
s1 = NAND(x1,x2) #s1是与非门的输出
s2 = OR(x1,x2) #s2是或门的输出
y = AND(s1,s2) #将s1与s2当做与门的输入 输出y
print(XOR(0,0))
print(XOR(1,0))
print(XOR(0,1))
print(XOR(1,1))
原因是在第32行后没有加入return返回值。
1.请注意,函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。
2.如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。return None可以简写为return。