gpt4 book ai didi

python - NameError: 全局名称 'cb' 未定义

转载 作者:太空宇宙 更新时间:2023-11-04 06:11:31 28 4
gpt4 key购买 nike

我正在尝试制作一个程序来计算你无法通过 6-9-20 的包获得的最大对象数( block )(我对 python 相当陌生,我尝试使用全局和非本地但它没有' 工作)。

def nuggets(n):
x = 6
y = 9
z = 20
for i in range(0,n//x+1):
for j in range(0,n//y+1):
for k in range(0,n//z+1):
if i*x + j*y + k*z == n:
return [i,j,k]
return None

def cant_buy(n):
seq=0
for i in range(n):
p=nuggets(i)
if type(p)== list:
seq+=1
elif type(p)== None:
cb=i
seq=0
return cb

然后出现这个错误:追溯(最近一次通话): 文件“”,第 1 行,位于 买不起(12) 文件“C:\Python33\OCW 6.00\ps2a.py”,第 22 行,在 cant_buy 中 返回 cbNameError: 全局名称 'cb' 未定义

怎么了?我在 elif 语句中定义了它。

最佳答案

当我运行您的代码时,我收到了一条略有不同但可能更清晰的错误消息。它说:“UnboundLocalError:赋值前引用了局部变量‘cb’”

所以 Python 试图使用一个未知的变量。

在循环中使用它之前先声明变量“cb”,如下所示:

def cant_buy(n):
cb = 0 # <---- insert this
seq=0
for i in range(n):
p=nuggets(i)
if type(p)== list:
seq+=1
elif type(p)== None:
cb=i
seq=0
return cb

应该可以解决问题。

关于python - NameError: 全局名称 'cb' 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18501635/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com