You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python递归函数simulate_tournament返回None,无法赋值给变量问题

问题原因及修复方案

核心问题

你的simulate_tournament函数在else分支的递归调用未返回结果。

当队伍数量大于1时,你执行了递归调用simulate_tournament(winners),但没有将这个调用的返回值传递出去。Python中,函数如果没有显式执行return语句,会默认返回None,这就是你打印结果为None的原因。

修复代码

修改else分支,添加return关键字返回递归结果:

def simulate_tournament(teams):
    """Simulate a tournament. Return name of winning team."""
    if len(teams) == 1:
        winner = teams[0]
        # 直接通过键取值更直观
        return winner["name"]
    else:
        winners = simulate_round(teams)
        # 添加return,将递归结果返回
        return simulate_tournament(winners)

额外优化

原代码中通过list(winner.values())[0]获取队伍名称的方式不够直观,建议直接使用字典的键"name"取值,这样代码可读性更强,也避免了潜在的键顺序问题(尽管Python 3.7+字典是有序的)。

内容的提问来源于stack exchange,提问作者user18930222

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:30:54