def love6(a, b):
if a==6 or b==6 or a+b==6 or abs(a-b)==6:
return True
return False
我只在python一个return语句上工作,因此我可以理解“return True”的使用,但我无法理解“return False”的使用?这是通过python中的标准编程使用return语句的正确方法吗?还是这种使用 return 忽略某些语句行的快捷方式?
def love6(a, b):
if a==6 or b==6 or a+b==6 or abs(a-b)==6:
return True
return False
我只在python一个return语句上工作,因此我可以理解“return True”的使用,但我无法理解“return False”的使用?这是通过python中的标准编程使用return语句的正确方法吗?还是这种使用 return 忽略某些语句行的快捷方式?
默认情况下,python 函数会返回None
,除非通过return
语句明确告知要这样做。
显然,该函数的规范是如果 a 为 6,它应该返回 True,否则返回 False。如果没有第二次返回,该函数将不会返回 False,它将返回 None。
Python 之禅 (PEP 20)的第二条规则是“显式优于隐式”。此代码通过显式返回 True 或 False 来遵守该原则,而不是依赖于 None 的隐式返回。
如果if
语句不匹配,则不return True
执行该行并且代码继续到第二个语句。return
如果第二个 return 语句不存在,则函数将结束并返回默认返回值None
。
该功能可以简化;if
语句本身中使用的表达式已经计算为True
or False
:
def love6(a, b):
return a==6 or b==6 or a+b==6 or abs(a-b)==6
语句和两个返回在if
这里完全是多余的。
您的代码与此基本相同:
def love6(a, b):
if a==6 or b==6 or a+b==6 or abs(a-b)==6:
return True
else:
return False
您需要最后一个,因为如果没有它,如果 if 语句的评估return
返回,该函数将返回。但是,您不需要,因为一旦 Python 命中 a ,它就会退出封闭函数。None
False
else
return
如果return False
不存在,那么只要条件不成立,该函数就不会返回任何内容。或者更确切地说,它会返回None
,因为这是默认设置;这可能会意外地起作用,因为None
它是虚假的,但通常最好是明确的;使用隐式None
的代码通常是一个错误。
FWIW,如果一个函数只返回条件的结果,你可以...返回条件的结果:
return (a==6 or b==6 or a+b==6 or abs(a-b)==6)
在 Python 中,缩进控制语句进入哪个块。在这种情况下,“return False”是love6
函数的一部分,因为它只有一组 4 个空格,而 return True 是 if 语句的一部分,因为它有两个4个空间组。因此,如果 if 语句条件为真,则该函数将返回 True,否则该函数将返回 False。该函数可以更紧凑地写为:
def love6(a,b):
return a==6 or b==6 or a+b==6 or abs(a-b)==6