详解Python 函数返回空值

  • Post category:Python

Python函数返回空值的使用方法

当我们定义一个函数时,并不一定要在函数体内使用return语句返回数值或对象。有时候,我们仅仅是用函数来执行某些操作或者打印一些信息,并不需要返回什么值。这时候,函数可以返回空值,也就是None。本篇攻略就是详细的讲解如何在Python函数中返回空值。

返回None

在Python中,None是一个特殊类型,表示空值。在函数中使用return语句,只需要省略返回值即可返回None,示例如下:

def do_something():
    print("This function does something but has no return value.")

result = do_something()  # 调用函数,返回None
print(result)  # None

如上例,当函数do_something()执行完毕后,返回值为None。在调用函数时,可以将返回值赋值给一个变量。此时变量值为None。

函数无返回值

从上面的示例中,我们可以看出,函数返回None其实就相当于函数没有返回值。这是因为在Python中,每个函数都必须有一个返回值。当没有明确的返回语句时,函数会默认返回None。

因此,可以理解为一个函数不显式地使用return语句返回值时,它的返回值为None。同时,它也不会直接将None返回给调用者,而是填充在返回值里面。

我们可以通过None判断函数是否有返回值。如果有返回值,则返回值会被强制转换为True,否则返回False。示例如下:

def has_return():
    return "This function has a return value."

def no_return():
    print("This function has no return value.")

print(bool(has_return()))  # True
print(bool(no_return()))  # False

如上例,函数has_return()明确使用了return语句返回一个字符串。因此,调用函数时返回值不为None,返回的布尔值为True。函数no_return()没有使用return语句,调用时返回值为None,返回的布尔值为False。

示例说明

示例1:计算斐波那契数列

下面是一个计算斐波那契数列的例子,函数计算结果并打印出来,返回None值。

def fibonacci(n):
    a, b = 0, 1
    for i in range(n):
        print(b)
        a, b = b, a+b

result = fibonacci(10)
print(result)  # None

函数fibonacci(n)使用一个for循环计算斐波那契数列,并打印出每一项。当函数执行完毕后,返回值为None。在调用函数时,将函数返回值赋值给变量result,最终result的值为None。

示例2:检查输入的密码是否合法

下面是一个检查输入密码是否合法的例子,函数执行完毕后,返回None值。

def validate_password(password):
    if len(password) < 8:
        print("密码长度必须大于等于8个字符")
    elif not any(char.isdigit() for char in password):
        print("密码必须包含数字")
    elif not any(char.isupper() for char in password):
        print("密码必须包含大写字母")
    else:
        print("密码合法")

result = validate_password("password")
print(result)  # None

函数validate_password(password)检查输入密码是否合法。如果不合法,打印相应的提示信息。如果合法,打印”密码合法”。当函数执行完毕后,返回值为None。在调用函数时,将函数返回值赋值给变量result,最终result的值为None。