如果数字不是偶数,为啥这个函数会返回“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 用pycharm的IDE,list的remove 返回总是None 为啥呢?