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。