如何在不使用(return)的情况下结束python中的函数?

时间:2015-04-16 10:40:56

标签: python python-2.7

正如您在python中定义函数时所知,您应该在代码中放置return来完成函数。在下面的代码中,我该如何完成功能:

def f(x) :
    if x == 0:
         print 'yes'
    print 'no'

print f(2)

当我在打印后的最后一行中运行此代码时,会出现None吗?

4 个答案:

答案 0 :(得分:6)

您不需要结束该功能,如果解释器遇到不在预期缩进上的行,则该功能将“自动结束”。但是您尝试打印f(2)的返回值。但是f会返回None。所以你打印None。不要打印该功能,只需调用该功能:f(2)

调用f(0)仍会提供no yes,因为您在检查0后没有停止执行。使用else子句或使用return

def f(x) :
    if x == 0:
        print 'yes'
    else:
        print 'no'

f(2)

答案 1 :(得分:6)

似乎这个问题不适合你的问题。

如果你这样做

print f(2)

打印函数返回的任何内容。在您的情况下,函数返回“nothing”,因此它隐式返回None - 然后按要求打印。

我看到两个解决方案:

  1. 请勿打印您不想要的内容:

    def f(x) :
        if x == 0:
             print 'yes'
        else:
             print 'no'
    
    f(2)
    
  2. 如果您希望调用者打印出来,请返回一些有用的内容:

    def f(x) :
        if x == 0:
             return 'yes'
        return 'no'
    
    print f(2)
    

答案 2 :(得分:0)

因为您正在打印函数的返回而您没有返回任何内容并且它打印None 你应该称它为内部打印,打印你想要的print.

答案 3 :(得分:-2)

Python的美妙之处在于它要求您正确格式化代码。什么都需要使用适当的缩进。您所需要做的就是:

    def f(x) :
        if x == 0:
           print 'yes'
        else:
           print 'no'
    f(3)