如何使数据在 discord.py 中以表格形式显示?

How to make data to be shown in tabular form in discord.py?(如何使数据在 discord.py 中以表格形式显示?)
本文介绍了如何使数据在 discord.py 中以表格形式显示?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

限时送ChatGPT账号..

您好,我正在创建一个制作积分表/排行榜的机器人,下面是非常好用的代码.

Hi I am creating a bot that makes points table/leaderboard , below is the code which works really nice.

def check(ctx):
    return lambda m: m.author == ctx.author and m.channel == ctx.channel


async def get_input_of_type(func, ctx):
    while True:
        try:
            msg = await bot.wait_for('message', check=check(ctx))
            return func(msg.content)
        except ValueError:
            continue

@bot.command()
async def start(ctx):
    await ctx.send("How many total teams are there?")
    t = await get_input_of_type(int, ctx)
    embed = discord.Embed(title=f"__**{ctx.guild.name} Results:**__", color=0x03f8fc,timestamp= ctx.message.created_at)
    
    lst = []
    
    for i in range(t):
        await ctx.send(f"Enter team {i+1} name :")
        teamname = await get_input_of_type(str, ctx)
        await ctx.send("How many kills did they get?")
        firstnum = await get_input_of_type(int, ctx)
        await ctx.send("How much Position points did they score?")
        secondnum = await get_input_of_type(int, ctx)
        lst.append((teamname, firstnum, secondnum))  # append 
        
    lstSorted = sorted(lst, key = lambda x: int(x[1]) + int(x[2],),reverse=True) # sort   
    for teamname, firstnum, secondnum in lstSorted:  # process embed
        embed.add_field(name=f'**{teamname}**', value=f'Kills: {firstnum}
Position Pt: {secondnum}
Total Pt: {firstnum+secondnum}',inline=True)

    await ctx.send(embed=embed)  

结果如下所示:

但我想知道,我可以做些什么来获得表格形式的结果,例如团队名称、位置点数、总分、连续写的击杀分以及打印在它们下面的结果(我真的不知道,如果这让你明白我想说什么.)

But I want to know, can I do something to get the result in tabular form like The Team Name , positions points , total pts, kill pts written in a row and the results printed below them (I really don't if that made you understand what I am trying to say.)

下图帮助你理解,

所以我希望结果采用以下格式.我想不出办法,如果你能回答这个问题,请这样做,那将是一个非常大的帮助!谢谢.

So I want the result to be in following format. I can't think of a way doing it , if you can answer this please do so, That would be a very great help! Thanks.

推荐答案

这可能是你得到的最接近的:

This is probably the closest you will get:

embed.add_field(name=f'**{teamname}**', value=f'> Kills: {firstnum}
> Position Pt: {secondnum}
> Total Pt: {firstnum+secondnum}',inline=False)

代码将输出如下内容:

我已将 inline 设置为 False 并将 > 字符添加到每个统计信息中.

I've set inline to False and added the > character to each of statistics.

这篇关于如何使数据在 discord.py 中以表格形式显示?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How do I make a list of all members in a discord server using discord.py?(如何使用 discord.py 列出不和谐服务器中的所有成员?)
how to change discord.py bot activity(如何更改 discord.py 机器人活动)
Issues with getting VoiceChannel.members and Guild.members to return a full list(让 VoiceChannel.members 和 Guild.members 返回完整列表的问题)
Add button components to a message (discord.py)(将按钮组件添加到消息(discord.py))
on_message() and @bot.command issue(on_message() 和@bot.command 问题)
How to edit a message in discord.py(如何在 discord.py 中编辑消息)