首页 > 解决方案 > 我将如何检查我的机器人消息是否 <2000 字符长度

问题描述

    @commands.command()
    async def emojify(self, ctx, *, text):
        emojis = []
        for s in text.lower():
            if s.isdecimal():
                num2emo = {'0':'zero', '1':'one', '2':'two',
                        '3':'three', '4':'four', '5':'five', 
                        '6':'six', '7':'seven', '8':'eight',
                        '9':'nine'}
                emojis.append(f':{num2emo.get(s)}:')
            elif s.isalpha():
                emojis.append(f':regional_indicator_{s}:')
            else:
                emojis.append(s)

        await ctx.send(''.join(emojis))

此命令将单词变成不和谐的表情符号(如 dank memer emojify)

我如何让它检查消息字符长度在发送之前有多长,以便它可以打印错误或继续?

标签: pythonpython-3.xdiscorddiscord.pybots

解决方案


将字符串保存在变量中并使用该len()函数获取字符数

@commands.command()
async def emojify(self, ctx, *, text):
    emojis = []
    for s in text.lower():
        if s.isdecimal():
            num2emo = {'0':'zero', '1':'one', '2':'two',
                    '3':'three', '4':'four', '5':'five', 
                    '6':'six', '7':'seven', '8':'eight',
                    '9':'nine'}
            emojis.append(f':{num2emo.get(s)}:')
        elif s.isalpha():
            emojis.append(f':regional_indicator_{s}:')
        else:
            emojis.append(s)

    messageToSend = ''.join(emojis)
    if len(messageToSend) < 2000:
        await ctx.send(messageToSend)
    else:
        # error-handling

推荐阅读