Python中如何正确处理函数的返回值问题?

def check (C1,C,H,T):

if C1 != C:
    return temprecrive()

else : print H print T return ( H,T )

然后运行的时候就提示返回 None 了。

https://www.v2ex.com/i/5dA494gq.png


Python中如何正确处理函数的返回值问题?

11 回复

return 后面括号是中文括号,源码也是吗?


在Python里处理函数返回值,核心就两点:明确函数返回什么在调用时处理好返回值

首先,函数用 return 语句返回值。不写 return 或只写 return 的函数,默认返回 None。这是很多新手困惑的来源。

def get_user_data(user_id):
    # 模拟从数据库获取数据
    data = {'id': user_id, 'name': 'Alice', 'age': 30}
    if data:
        return data  # 返回字典
    # 没有显式返回,函数在此结束,隐式返回 None

result = get_user_data(1)
if result is not None:
    print(f"用户名: {result['name']}")
else:
    print("未找到用户")

其次,处理返回值时要考虑其类型。一个函数最好保持返回类型一致(比如总是返回列表或总是返回 None),这样调用方处理起来更简单。如果可能返回多种类型,可以用元组包装状态和结果。

def divide(a, b):
    if b == 0:
        return False, None  # 状态标志,结果
    return True, a / b

success, value = divide(10, 2)
if success:
    print(f"结果是: {value}")

总结:设计函数时就想好怎么用它,返回类型要清晰一致。

你的截图里面是 temprecrive 这个函数返回了 None。

然后你试图 (H, T) = temprecrive(),这句话报错了

把(H, T) = temprecrive()括号删掉,改为:

H, T = temprecrive()

试试

数字啊

H,T =ftemper.temprecrive()
print H

这样吗? 还是不行

对啊,我就不知道为什么 print 的时候还是数字,然后 return 的时候就变成 None 了

真的不是我发的,我在 google 找了半天没找到


人家说的是

显然是你的问题

不是

显然是你发的问题

回到顶部