如果数字不是偶数,为啥这个函数会返回“None”?如何在不使用其他条件的情况下使其返回“False”?

Posted

技术标签:

【中文标题】如果数字不是偶数,为啥这个函数会返回“None”?如何在不使用其他条件的情况下使其返回“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?如果数字不是偶数,为什么这个函数会返回“None”?如何在不使用其他条件的情况下使其返回“False”? 【发布时间】:2022-01-20 20:03:18 【问题描述】:
def my_function(n):
    if(n % 2 == 0):
        return True

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

输出:

True
None

我知道必须明确指定函数返回“False”,但不完全理解为什么。可以在不包含 else 循环的情况下使该函数返回 false 吗?

【问题讨论】:

如果你没有明确返回一些东西,它会返回None。有什么不清楚的地方? 相关:Function returns None without return statement return False?但是为什么你不想使用 else 呢?它没有任何问题,而且事实上,如果你一直考虑else,这个问题就不会发生...... 【参考方案1】:

回答您的问题:您正试图从根本没有价值的东西中获取 False 值。因此它是“无”。仅仅因为它不是真的并不一定意味着它是错误的。

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

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

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

另一种方式:

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

这里,如果我们通过 if 检查,函数将返回 True,并且永远不会返回 False 语句。反之亦然,如果我们不通过 if 检查,我们将改为返回 False。我更喜欢以这种方式编写代码,因为它更具体地说明了代码的作用。不管怎样都有效

【讨论】:

【参考方案2】:
def my_function(n):
    if(n % 2 == 0):
        return True
    return False

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

【讨论】:

【参考方案3】:

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

第二个问题:你可以return n%2 == 0,如果n是偶数返回true,如果n是奇数返回false。

【讨论】:

以上是关于如果数字不是偶数,为啥这个函数会返回“None”?如何在不使用其他条件的情况下使其返回“False”?的主要内容,如果未能解决你的问题,请参考以下文章

用python中re.match匹配为啥一直是None?

python 用pycharm的IDE,list的remove 返回总是None 为啥呢?

为啥我的递归函数返回 None?

为啥我的递归函数返回 None?

为啥我的 Python 函数打印一个值但返回 None? [关闭]

如果参数是数字,为啥函数返回 NaN?