You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.py开发Discord机器人运行报第58行SyntaxError无效语法错误

错误定位与解决方案

直接报错原因

第58行的语法报错是前一行代码未闭合导致的连锁报错:
你写的cf命令最后一行缺少右括号:

# 错误代码(第56行)
await ctx.send(random.choice(coinflip)
# 少了末尾的)

Python解析时找不到括号闭合位,就会将下一行的函数定义判定为语法错误,因此报错指针指向第58行的async def maps(ctx):。

修复方法

在第56行末尾补充右括号即可:

await ctx.send(random.choice(coinflip))

其他必须修复的隐性问题

仅修复上述括号问题后代码仍然无法正常运行,还需要修改以下问题:

  • 客户端初始化错误:
    你同时初始化了commands.client和discord.Client两个客户端,且存在两处错误:
    1. commands.client首字母需要大写,应为commands.Bot
    2. discord.Client不支持@client.command()装饰器,会导致所有命令失效
      替换原客户端初始化代码:
    # 错误代码
    client = commands.client(command_prefix='-', help_command=None)
    client = discord.Client()
    # 替换为
    client = commands.Bot(command_prefix='-', help_command=None)
    
  • 所有HTML转义字符"替换为普通双引号",否则Python无法识别字符串边界。
  • ping命令中引用的bot.latency变量名错误,你的实例名称是client,改为client.latency。
  • imposter命令中的{message.author.mention}需要改为{ctx.author.mention},且字符串前加f变成f字符串才能解析占位符:
    await ctx.send(f".    。    •\n゚  。   .\n.     。   。 . \n.   。      ඞ 。 .    •     •\n  {ctx.author.mention} was An Impostor.  。 .\n0 Impostor remains     。\n   .   . ,    .  .")
    
  • maps命令中的列表名maps-au包含非法字符-,Python变量名不允许使用减号,改为maps_au。

内容的提问来源于stack exchange,提问作者user16080338

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 21:45:02