我想知道以下函数是否存在任何相关差异:
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的人会解释一下并用简短的解释显示正确。
答案 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
,这可能需要作为代码的其他地方的值终止。