我用货币程序重新编译了一个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
错误时它说:取消缩进与任何外部缩进级别不匹配
请帮助我
您的缩进量需要一致,尽量坚持只使用 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'
你的缩进级别混乱了。 Python 使用空格来定义大多数其他语言使用大括号的块。只要您在整个脚本中的每个缩进级别使用相同数量的空格,这种方法就可以正常工作。
因此,如果您从第一个级别(没有缩进)开始,并决定每个级别的缩进量为 4 个空格,则第二个级别有 4 个空格,第三个级别有 8 个空格,第四个级别有 12 个空格,依此类推。
无论你在哪里有二级块,你都必须给它4个空格的缩进,否则Python解释器将抛出你得到的错误。
您可以在 PEP8 的缩进部分找到有关如何正确执行此操作的更多信息:https://www.python.org/dev/peps/pep-0008/#indentation
一个好的 IDE 可以帮助您正确格式化代码;-)