为什么这个函数 return "None" 如果数字不是偶数?如何在不使用 else 条件的情况下使其成为 return "False"?

Why does this function return "None" if the number isn't even? How can I make it return "False" without using an else condition?

def my_function(n):
    if(n % 2 == 0):
        return True

print(my_function(2))
print(my_function(5))

输出:

True
None

我知道 'False' 必须明确指定才能由函数 return 编辑,但不完全理解 why.Can 此函数被设为 return false 没有合并 else 循环?

第一个问题:如果你没有在Python函数中指定任何return,它将return none.

第二个问题:你可以做 return n%2 == 0,如果 n 是偶数,则 return 为真,如果 n 为奇数,则为假。

def my_function(n):
    if(n % 2 == 0):
        return True
    return False

因为只有一个return指示,否则return就是none、'nothing'。在这里我们强制它 return False 否则。

回答你的问题:你试图从根本没有价值的东西中得到一个错误的价值。因此是'none'。仅仅因为它不是真的并不一定意味着它是假的。

虽然有两种常见的方法可以做到这一点:

def my_function(n):
    return n % 2 == 0

这将根据参数 n 评估为 True 或 False,然后它将 return 值。

另一种方式:

def my_function(n):
    if(n % 2 == 0):
        return True
    return False

在这里,如果我们通过 if 检查,函数将为 return True,它永远不会进入 return False 语句。反之亦然,如果我们没有通过 if 检查,我们将取而代之 return False。我更喜欢以这种方式编写代码,因为它在代码的作用方面更具体一些。不过两种方法都有效