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

Ami*_*Ali -3 python python-2.7

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

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

print f(2)
Run Code Online (Sandbox Code Playgroud)

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

syn*_*nym 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)
Run Code Online (Sandbox Code Playgroud)


glg*_*lgl 6

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

如果你这样做

print f(2)
Run Code Online (Sandbox Code Playgroud)

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

我看到两个解决方案:

  1. 不要打印你不想要的东西:

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

    def f(x) :
        if x == 0:
             return 'yes'
        return 'no'
    
    print f(2)
    
    Run Code Online (Sandbox Code Playgroud)