我在 discord.py 上的一个货币项目上遇到了问题

I got a problem on a currency project on discord.py

我正在用货币程序重新分割 discord.py 文件。 但它停留在 f: 在 with open line

async def open_account(user):
  users = await get_bank_data()

  if str (user.id) in users:
      return False
  else:
        users[str(user.id)] = {}
        users[str(user.id)]["wallet"] = 0
        users[str(user.id)]["bank"] = 0
    with open("mainbank.json", "w") as f:
       json.dump(users, f)
       return True

错误提示:unindent 不匹配任何外部缩进级别

请帮帮我

您的缩进量需要保持一致,请尝试只使用 TAB 一次。

尝试将那部分代码替换为:

async def open_account(user):
    users = await get_bank_data()

    if str (user.id) in users:
        return False
    else:
        users[str(user.id)] = {}
        users[str(user.id)]["wallet"] = 0
        users[str(user.id)]["bank"] = 0
    with open("mainbank.json", "w") as f:
        json.dump(users, f)
        return True

在您提供的代码中,您从缩进 2 开始,然后缩进 4,然后缩进 3。如果您使用的是 IDE,例如 VSCode,则用于配置自动缩进大小的 built-in 选项。 如果您使用的是 VSCode,请尝试 CTRL+P 并键入“>缩进”

你的缩进级别乱七八糟。 Python 使用空格来定义大多数其他语言会使用大括号的块。只要您在整个脚本中为每个缩进级别使用相同数量的空格,这种方法就可以正常工作。

因此,如果您从第一级开始(没有缩进)并决定每级缩进 4 个空格,则第二级有 4 个空格,第三级有 8 个,第四级有 12 个,依此类推。

无论你在哪里有一个 second-level 块,你都必须给它 4 个缩进空格,否则 Python 解释器将抛出你得到的错误。

您将在 PEP8 的缩进部分找到有关如何正确执行此操作的更多信息:https://www.python.org/dev/peps/pep-0008/#indentation

一个好的 IDE 可以帮助您正确格式化代码 ;-)