用户登录
用户注册

分享至

Discord.py:想要将 message.content 读取为小写,.lower() 不起作用

  • 作者: 暗影19931011
  • 来源: 51数据库
  • 2023-02-01

问题描述

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('------')

Expected outcome: codeword, regardless of capitalization is removed.

Error: NameError: name 'lower' is not defined

I also tried

@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()

Error:'str' object has no attribute 'lowercase'

解决方案

I would recommend assigning the lower-case version it's own variable like this.

messageContent = message.content.lower()

So...

@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('------')

软件
前端设计
程序设计
Java相关