如何让我的机器人在使用不同的消息时执行相同的操作?
How can I make my bot execute the same action while using different messages?
假设我有一个列表。
List = ["Hello", "Sup", "Hi", "Yo"]
我希望我的机器人发送相同的消息,即使我使用这些词中的任何一个。
如果这个人说你好,机器人会回复你好,
如果用户说嗨,机器人会回复你好,
等等。
现在,我想在这种情况下使用 message.content.startswith,这样如果此人输入 Hello 以及其他内容(例如“Hello bot!很高兴见到你。”),bot 仍会回复.我尝试使用 message.content,但如果我除了“关键”之外还有其他词,机器人将不会回复。
我试过了
List = ["Hello", "Sup", "Hi", "Yo"]
if message.content.startswith(List):
await bla bla bla
但我收到一条错误消息,指出第一个 arg. for startswith 不能是一个列表。
是的,基本上就是这样。我尝试使用“任何”功能,但我注意到这并不是我真正需要的(就我而言,也许是,但我错了)。但这基本上就是我想要的:无论这个人说你好、Sup、嗨等等,机器人都用同样的东西回复......
最佳做法建议使用与 List 不同的变量名。也就是说:
if message.split(' ')[0] is in List:
await bla bla bla
将检查消息的第一个词是否在您的列表中,如果是,则执行其余代码。
if message.content.split()[0] is in List:
#Do something
这应该有效,并且允许您更改列表中的任何内容并且它仍然有效
您还可以使用 message.split()[0].upper() 并确保列表中的每个单词都是完全大写的,因此用户输入的大小写无关紧要
str.startswith()
可以将 tuple
作为参数,所以你可以做
tup = ("Hello", "Sup", "Hi", "Yo",)
if message.content.startswith(tup):
# do something
假设我有一个列表。
List = ["Hello", "Sup", "Hi", "Yo"]
我希望我的机器人发送相同的消息,即使我使用这些词中的任何一个。 如果这个人说你好,机器人会回复你好, 如果用户说嗨,机器人会回复你好, 等等。
现在,我想在这种情况下使用 message.content.startswith,这样如果此人输入 Hello 以及其他内容(例如“Hello bot!很高兴见到你。”),bot 仍会回复.我尝试使用 message.content,但如果我除了“关键”之外还有其他词,机器人将不会回复。
我试过了
List = ["Hello", "Sup", "Hi", "Yo"]
if message.content.startswith(List):
await bla bla bla
但我收到一条错误消息,指出第一个 arg. for startswith 不能是一个列表。 是的,基本上就是这样。我尝试使用“任何”功能,但我注意到这并不是我真正需要的(就我而言,也许是,但我错了)。但这基本上就是我想要的:无论这个人说你好、Sup、嗨等等,机器人都用同样的东西回复......
最佳做法建议使用与 List 不同的变量名。也就是说:
if message.split(' ')[0] is in List:
await bla bla bla
将检查消息的第一个词是否在您的列表中,如果是,则执行其余代码。
if message.content.split()[0] is in List:
#Do something
这应该有效,并且允许您更改列表中的任何内容并且它仍然有效
您还可以使用 message.split()[0].upper() 并确保列表中的每个单词都是完全大写的,因此用户输入的大小写无关紧要
str.startswith()
可以将 tuple
作为参数,所以你可以做
tup = ("Hello", "Sup", "Hi", "Yo",)
if message.content.startswith(tup):
# do something