【发布时间】:2021-12-30 16:58:34
【问题描述】:
我正在使用以下链接编写一个不和谐机器人:https://www.youtube.com/watch?v=SPTfmiYiuok
这是一个机器人,旨在在被调用时提供鼓舞人心的消息,用户也可以添加和删除所述消息。 我面临的问题:
A) 每当我输入任何内容时,它都会收到“添加了新的鼓励信息”的命令,即使我没有调用该函数。
B) 代码本身给我一个错误,指出列表索引超出范围。
作为参考,这里是出现错误消息的代码块,以及我怀疑错误所在的范围。 实际的错误是朝向底部的线:
index = int(msg.split("+del",1)[1])'):
这是代码
if msg.startswith('+inspire'):
quote = get_quote()
await message.channel.send(quote)
options = starter_encouragements
if "encouragements" in db.keys():
options = options + db["encouragements"].value
if any(word in msg for word in sad_words):
await message.channel.send(random.choice(options))
if msg.startswith('+new'):
encouraging_message = msg.split("+new ",1)[1]
update_encouragements(encouraging_message)
await message.channel.send("New encouraging message added :)")
if msg.startswith("+del"):
encouragements = []
if "encouragements" in db.keys():
index = int(msg.split("+del",1)[1])
delete_encouragement(index)
encouragements = db["encouragements"]
await
message.channel.send(encouragements)
【问题讨论】:
-
为什么你添加了
android和ios标签? -
尝试将花括号
{ }添加到您的IF语句中,我认为由于缺少空格,await message.channel.send("New encouraging message added :)")总是会触发。 -
更新:我能够弄清楚实际领事中给出的错误消息,但我仍然无法弄清楚为什么每当我输入时,它都会给我收到“添加新鼓励消息”的消息'。我曾尝试按照 Luke Duncan 的建议使用花括号,但这只是给出了无效的语法建议。
-
@Snickzoryx 道歉,我不记得 Python 是否有卷曲,但最新的答案似乎是正确的。