Python中的两个返回实例有问题吗?

背景:

Codeacademy上的一项练习要求在cube函数return为变量的情况下创建代码cubed。


然后,当该函数被该函数调用时,by_three作者建议使用另一个return:


确保两个函数都返回它们的值而不是打印它们,并且if/else语句中的两个分支by_three都return在其中包含语句。


被接受为正确答案的代码是:


def cube(n):

    cubed = n**3

    return cubed


def by_three(n):

    if n % 3 == 0:

        return cube(n)

    else:

        return False

问题:

为什么需要两个实例return?首先在cube,随后又在if为by_three。前者不够吗?


还是重复可以帮助代码执行,为什么?有害吗?


长风秋雁
浏览 193回答 4
4回答

紫衣仙女

如果函数不返回任何内容,则默认为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 216mycubed2 = by_three(4)# mycubed2 is now False.有if/elif/else语句时,始终从函数返回值。但是无论情况如何,退货总是很方便的。(请注意,某物与no(ne)thing是相反的)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python