我在discord.py 上的货币项目上遇到问题[重复]

问题描述 投票:0回答:2

我用货币程序重新编译了一个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

错误时它说:取消缩进与任何外部缩进级别不匹配

请帮助我

python indentation
2个回答
2
投票

您的缩进量需要一致,尽量坚持只使用 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。如果您使用 VSCode 等 IDE,则有一个用于配置自动缩进大小的内置选项。 如果您使用的是 VSCode,请尝试按 CTRL+P 并输入 '>indent'


0
投票

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.