【发布时间】:2020-05-29 20:00:07
【问题描述】:
我对 Python 还很陌生,所以这让我很困惑。我正在尝试检查列表中的所有成员,对于每个成员,它会检查它是否是人 A/人 B,然后根据是否是那个人来做某件事。由于某种原因,当第一个检查的人与它检查的人相同时,它表示所有以下人员也是那个人。 该代码用于清除不和谐服务器中的所有成员,除了少数(用于在小游戏后重置)。
async def serverreset(ctx):
for member in ctx.message.guild.members:
print(member)
if member == "person1#1234" or "person2#2345":
print(f"Unable to ban {member.display_name}")
else:
await member.ban(reason="Reset", delete_message_days=7)
print(f"Banned {member.display_name}")
程序运行结果:
person1#1234
Unable to ban person1
person2#2345
Unable to ban person2
accountthatshouldbebanned#5678
Unable to ban accountthatshouldbebanned
【问题讨论】:
-
试试
if member == "person1#1234" or member == "person2#2345": -
检查人们的姓名/鉴别器是个坏主意,您应该使用 ID (
member.id)。也如本金所说,or是低优先级操作,试试if member not in ('person1#1234', 'person2#2345') -
当使用
if member not in ('person1#1234', 'person2#2345'):并在下一行正确缩进ban 命令时,它仍然会尝试禁止这两个用户。有什么我可能做错了吗?编辑:就在我发布了这个 Diggy 之后,他的回复就解决了我的问题
标签: python discord.py discord.py-rewrite