python有两种从函数差异中返回的方法

时间:2015-02-04 18:44:25

标签: python return

我想知道以下函数是否存在任何相关差异:

def function1(n):
    if n%2 == 0:
        return n
    else:
        return "Number " +str(n)+ " is odd."

def function2(n):
    if n%2 == 0:
        return n
    else:
        print "Number " +str(n)+ " is odd."
        return

在一些在线课程中,我注意到在一个任务中(代码比上面打印的代码复杂得多,但我只是简单地展示了一个概念)自动分级给我一个错误,当我没有正常退出时使用了function1的设计,当我从function2改为设计时,我获得了满分。我真的很感兴趣,为什么我不能使用function1作为正确的设计,也许有一个超过我expierence的人会解释一下并用简短的解释显示正确。

1 个答案:

答案 0 :(得分:0)

如果执行else的第二个函数将返回None,在第一个函数中将返回"Number " +str(n)+ " is odd."的值

因此,如果需要使用"Number " +str(n)+ " is odd."中的值,如果无法达到其他值,则只能看到它打印出来。

In [9]: x = function1(11)

In [10]: print x
Number 11 is odd.

In [11]: x = function2(11)
Number 11 is odd.

In [12]: print x
None

在您的课程中,评分者很可能不会使用print来调用函数,因此要查看print function1(11)所需的输出,使用任何ide类似pycharm的输出都是相同的等等。只是在你有一个返回时调用该函数将不会显示返回值。

没有看到更复杂的代码,有太多的可能性,但只是打印的某个部分是你的函数将返回None,这可能需要作为代码的其他地方的值终止。