我正在尝试在一个不和谐的机器人中创建一个计数器,该机器人从用户那里获取一个数字并将其添加到当前总数中。但是,我收到“分配前已引用本地变量'counter'”错误或“未定义名称计数器”错误。
在尝试解决我的问题时,我尝试了2种方法。
变化1:
global counter
@bot.command()
async def bid(ctx,number):
counter += number
print(str(counter))
变化2:
@bot.command()
async def bid(ctx,number):
global counter
counter += 1
print(str(counter))
变化1来自StackOverflow上的类似问题帖子。这是返回“赋值前引用的局部变量'counter'”错误的代码
变化2也来自类似的问题(同一问题实际上只是不同的回答)。这是返回“未定义名称计数器”错误的代码。
预期结果:
我希望创建一个允许用户增加计数的命令。因此,可以说当前计数为0。我希望能够说出!bid 40并将其计数提高到40。如果另一个用户说出!bid 20,我希望计数值达到60。
所提供的代码到底有什么问题?为什么会这样呢?
答案 0 :(得分:1)
在版本2中,您必须定义计数器:
counter = 0
@bot.command()
async def bid(ctx,number):
global counter
counter += 1
print(str(counter))