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

请排查Python组合数函数中的UnboundLocalError错误

阶乘/排列/组合数代码错误排查

错误根源

在comb函数里,你写了perm = perm(n, r),这行代码犯了变量名冲突的问题:

  • 你把局部变量的名字和外部定义的perm排列函数取成了同一个
  • Python会把这里的perm优先识别成局部变量,但执行赋值时,右边的perm(n, r)会被当成还没赋值的局部变量来引用,直接触发UnboundLocalError。

修复方案

两种简单的解决办法:

  1. 给局部变量换个名字(推荐这种,代码更清晰):
def comb(n, r):
    perm_result = perm(n, r)
    rFactorial = factorial(r)
    answer = perm_result / rFactorial
    return answer
  1. 声明引用全局的perm函数:
def comb(n, r):
    global perm
    perm = perm(n, r)
    rFactorial = factorial(r)
    answer = perm / rFactorial
    return answer

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:01:00