背景:Codeacademy上的一项练习要求在cube函数return为变量的情况下创建代码cubed。然后,当该函数被该函数调用时,by_three作者建议使用另一个return:确保两个函数都返回它们的值而不是打印它们,并且if/else语句中的两个分支by_three都return在其中包含语句。被接受为正确答案的代码是:def cube(n): cubed = n**3 return cubeddef by_three(n): if n % 3 == 0: return cube(n) else: return False问题:为什么需要两个实例return?首先在cube,随后又在if为by_three。前者不够吗?还是重复可以帮助代码执行,为什么?有害吗?
4 回答

紫衣仙女
TA贡献1839条经验 获得超15个赞
如果函数不返回任何内容,则默认为returning None。
您的cube函数而不是打印结果,而是返回结果,以便可以在其他地方使用。如果只是print cubed返回而不是返回,则return cube(n)相当于return None,这不是您想要的。因为return 返回(或在这种情况下,将值)分配给变量。
在您的by_three函数中,使用很有用else: return False,因为如上所述,否则它将返回None。这可能无济于事,因为您可能需要该值False才能在代码的后面确定其他内容。要求您将returns放入if / else的原因是,这是Codecademy希望您执行的:p。在以后的Codecademy中,这可能对您没有用,但是这是一个好习惯:)之后,当您开始编写自己的代码时:)。
mycubed = by_three(6)
# mycubed is now 216
mycubed2 = by_three(4)
# mycubed2 is now False.
有if/elif/else语句时,始终从函数返回值。但是无论情况如何,退货总是很方便的。(请注意,某物与no(ne)thing是相反的)
添加回答
举报
0/150
提交
取消