如何在 python 下一根绳子上设置多个条件
How to make multiple conditions on python next cord
所以我想做一个命令,它只对少数特定的人说一些特定的事情,而对于代码中没有指定的其他人,它只会说一些正常的事情。
@client.command()
async def test(ctx):
if ctx.author.id == 1:
await ctx.reply('Hello Person 1')
if ctx.author.id == 2:
await ctx.reply("Hello Person 2")
if not ctx.author.id == 1 and 2:
await ctx.reply ("Hello")
类似上面的代码,我确实试过了,但是它不会计算第7行的第二个条件。有人有解决方案吗?
ctx.author.id == 1 and 2
这是 True
如果 ctx.author.id == 1
和 2
。由于 2
不是 0
,因此总是真实的,如果 ctx.author.id == 1
,整个表达式总是 True
然后 not
反过来,所以你使用的整个表达式总是 True
if ctx.author.id != 1
你的意思是:
not (ctx.author.id == 1 or ctx.author.id == 2)
或者:
ctx.author.id != 1 and ctx.author.id != 2
或者:
ctx.author.id not in [1, 2]
即使这样也行不通:
not ctx.author.id == (1 and 2)
因为它只计算 1 and 2
(0
也不是,所以结果是真实的 2
)。不是你想要的,因为这只是测试 ctx.author.id
是否等于 2(令人困惑)。
虽然 Python 看起来像英文,但实际上 不是 英文。在英语中,我可以说“today is hot and sunny”,意思是今天很热and today is sunny。然而,计算机不是那样工作的。他们无法以这种方式推断事物,因此您需要明确说明,例如:
if not (ctx.author.id == 1 and ctx.author.id == 2):
await ctx.reply ("Hello")
所以我想做一个命令,它只对少数特定的人说一些特定的事情,而对于代码中没有指定的其他人,它只会说一些正常的事情。
@client.command()
async def test(ctx):
if ctx.author.id == 1:
await ctx.reply('Hello Person 1')
if ctx.author.id == 2:
await ctx.reply("Hello Person 2")
if not ctx.author.id == 1 and 2:
await ctx.reply ("Hello")
类似上面的代码,我确实试过了,但是它不会计算第7行的第二个条件。有人有解决方案吗?
ctx.author.id == 1 and 2
这是 True
如果 ctx.author.id == 1
和 2
。由于 2
不是 0
,因此总是真实的,如果 ctx.author.id == 1
True
然后 not
反过来,所以你使用的整个表达式总是 True
if ctx.author.id != 1
你的意思是:
not (ctx.author.id == 1 or ctx.author.id == 2)
或者:
ctx.author.id != 1 and ctx.author.id != 2
或者:
ctx.author.id not in [1, 2]
即使这样也行不通:
not ctx.author.id == (1 and 2)
因为它只计算 1 and 2
(0
也不是,所以结果是真实的 2
)。不是你想要的,因为这只是测试 ctx.author.id
是否等于 2(令人困惑)。
虽然 Python 看起来像英文,但实际上 不是 英文。在英语中,我可以说“today is hot and sunny”,意思是今天很热and today is sunny。然而,计算机不是那样工作的。他们无法以这种方式推断事物,因此您需要明确说明,例如:
if not (ctx.author.id == 1 and ctx.author.id == 2):
await ctx.reply ("Hello")