【问题标题】:Problem with if and else (python, discord.py)if 和 else 的问题(python,discord.py)
【发布时间】:2021-04-13 17:39:03
【问题描述】:

最近我开始使用 python 制作不和谐机器人。我做了一些命令,比如检查user1user2 的喜爱程度。 user1/2 不能是机器人本身或同一个人。它大部分时间都运行良好,但是当我添加其他这样的命令时,一切都停止了。这是我的代码:

@bot.command()
@commands.check(user_is_me)
async def milosc(ctx, user1: discord.Member, user2: discord.Member):
    milosc_procent = random.randint(1, 101)
    if user1 == user2:
        await ctx.send("**Nie możesz sprawdzic jak bardzo ktoś kocha samego siebie**")
    if user1.name == 'Pieseł bot':
        await ctx.send("**Nie możesz sprawdzić jak bardzo bot kogoś kocha. To nie ma sensu !**")
    if user2.name == 'Pieseł bot':
        embed=discord.Embed(title="Jak bardzo kochasz Pieseł bot-a", description=f"Użytkownik {user1.name} kocha użytkownika {user2.name} w 100%. Bo kto takiego słodkiego piesełka by nie kochał <:pepeLove:831157130153164831>", color=0xff0000, timestamp=datetime.datetime.utcnow())
        embed.set_author(name="Pieseł bot", icon_url="https://cdn.discordapp.com/avatars/451734929999659008/ed54c994c64b2e0df385822e42c48993.png?size=4096")
        embed.set_footer(text=f"Sprawdzono na prośbę {ctx.author.name}")
        await ctx.send(embed=embed)
    else:
        embed=discord.Embed(title="Jak bardzo się kochają", description=f"Użytkownik {user1.name} kocha użytkownika {user2.name} w {milosc_procent}%", color=0xff0000, timestamp=datetime.datetime.utcnow())
        embed.set_author(name="Pieseł bot", icon_url="https://cdn.discordapp.com/avatars/451734929999659008/ed54c994c64b2e0df385822e42c48993.png?size=4096")
        embed.set_footer(text=f"Sprawdzono na prośbę {ctx.author.name}")
        await ctx.send(embed=embed)
        if milosc_procent >= 100:
            await ctx.send(file=discord.File('milosc.png'))
        
@bot.command()
@commands.check(user_is_me)
async def para(ctx, user1: discord.Member, user2: discord.Member):
    how_para = random.randint(1, 101)
    if user1 == user2:
        await ctx.send("**Nie możesz sprawdzic czy ktoś jest parą z samym sobą :exploding_head:**")
    if user1.name == 'Pieseł bot':
        await ctx.send("**Nie możesz sprawdzić jak bardzo bot pasuje do bycia z kimś parą. To nie ma sensu !**")
    if user2.name == 'Pieseł bot':
        await ctx.send("**Nie możesz sprawdzić jak bardzo bot pasuje do bycia z kimś parą. To nie ma sensu !**")
    else:
        embed=discord.Embed(title="Jak bardzo pasują jako para", description=f"Użytkownik {user1.name} z użytkownikiem {user2.name} byli by zarąbistą parą w {how_para}%", color=0xff0000, timestamp=datetime.datetime.utcnow())
        embed.set_author(name="Pieseł bot", icon_url="https://cdn.discordapp.com/avatars/451734929999659008/ed54c994c64b2e0df385822e42c48993.png?size=4096")
        embed.set_footer(text=f"Sprawdzono na prośbę {ctx.author.name}")
        await ctx.send(embed=embed)
        if how_para >= 100:
            await ctx.send(file=discord.File('para.gif'))

它应该看起来像这样:

但它看起来像这样:

Bot 适用于波兰语用户,这就是为什么所有消息都是波兰语。

【问题讨论】:

    标签: python discord.py


    【解决方案1】:

    如果你想用多个'if'语句创建1个循环,你应该使用'elif'。 'Elif' 是 else if 的缩写。如果if 的条件是False,代码将检查条件elif。如果ifelif 的所有条件均为假,则代码将执行else 块。请参阅下面的示例。

    user1 = 'mike'
    user2 = 'paul'
    
    if user1 == user2:
        print('User 1 is equal to user 2')
    elif user1 == 'paul':
        print('User 1 is Paul')
    else:
        print('No users recognized')
    

    您的代码现在将在每次最后一个 if 条件不满足时执行最后一个 if - else 语句中的 else 块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多