【问题标题】:Discord.py: Want to have message.content read as lowercase, .lower() not workingDiscord.py:想要将 message.content 读取为小写,.lower() 不起作用
【发布时间】:2021-01-12 09:25:06
【问题描述】:
import discord
import asyncio
import sys
from discord.ext import commands
client=commands.Bot(command_prefix = '.')
id=client.get_guild(-----)
codeword=["codeword"]

@client.event
async def on_message(message):
    message.content=message.content.lower()
    if message.content== 'sys.exit()': sys.exit()
    if  message.content in codeword:
        await message.channel.send("{}".format(message.author.display_name))
        await message.delete()
client.run('------')

预期结果:删除码字,无论大小写。

错误:NameError:未定义名称'lower'

我也试过

@client.event
async def on_message(message):
    if message.content.lower()== 'sys.exit()': sys.exit()
    if  message.content.lower() in codeword:
        await message.channel.send("{}.format(message.author.display_name))
        await message.delete()

错误:'str' 对象没有属性 'lowercase'

【问题讨论】:

  • 您的代码必须完全正常,您在此处显示的代码与您的原始代码相同吗?因为2.代码块中,没有lowercase函数。
  • 顺便说一句,您不应该将 message.content 设置为小写内容,只需为此创建一个新变量。 Nurqm 已经说过了,请检查您提供给我们的代码!

标签: python python-3.x discord.py


【解决方案1】:

我建议像这样将小写版本分配给它自己的变量。

messageContent = message.content.lower()

所以...

@client.event
async def on_message(message):
    messageContent = message.content.lower()
    if messageContent == 'sys.exit()': sys.exit()
    if  messageContent in codeword:
        await message.channel.send("{}".format(message.author.display_name))
        await message.delete()
client.run('------')

【讨论】:

    【解决方案2】:

    我想这应该可以解决问题

    str(message.content).lower()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-31
      • 1970-01-01
      • 2022-10-23
      • 1970-01-01
      • 2019-11-06
      • 2022-12-10
      相关资源
      最近更新 更多