神秘的非类型出现

Mysterious nonetype appearing

python 3.7

你好。
我知道 None 是什么都没有被 returned 的结果,但是我不明白为什么我在这段代码的末尾得到 None returned。我看不到任何未完成的内容。

def test(a, b):
    if a == True and b == True:
        return False
    elif a == True or b == True:
        return True
    elif a == False and b == False:
        return False
    else:
        print("error... :(")

print(test(True, True))
print(test(True, False))
print(test(False, True))
print(test(False, False))
print(test(None, False))

当我 运行 此代码时,我得到:

False
True
True
False
error... :(
None

我还尝试将 else: 语句更改为实际 return 打印对象,希望我的代码只是要求冗余 return,但输出是相同的。

    else:
        error = print("error... :(")
    return error

任何人都可以阐明 None 的来源吗?

您的 else 语句打印出行 "error... :(",但是您还尝试打印出该函数的结果。要么让函数处理打印并且 return 什么都不处理(从主体中删除打印语句),要么让函数 return 您想要打印的字符串而不是从函数中打印它(见下文)。

def test(a, b):
if a == True and b == True:
    return False
elif a == True or b == True:
    return True
elif a == False and b == False:
    return False
else:
    return "error... :("

print(test(True, True))
print(test(True, False))
print(test(False, True))
print(test(False, False))
print(test(None, False))