我正在使用Python 3.5编写一个不和谐的机器人,但遇到了一个问题,但似乎无法解决,这是代码
if message.content.startswith('!juvialist'):
decision = message.content[10:]
if decision == 'add':
await client.send_message(message.channel, 'Added')
elif decision == 'remove':
await client.send_message(message.channel, 'Removed')
else:
await client.send_message(message.channel, decision + ' is an invalid parameter')
基本上,这里发生的是如果用户键入'!juvialist add'python在添加之前将所有内容切成薄片并将其放入称为Decision的字符串中,那么IF语句将决定发生了什么,如果是添加或删除它会执行某些操作,否则它告诉用户该参数是错误的,但是问题是,即使它是正确的,它也总是转到其他位置并返回错误
错误:
我已经尝试过做同样的事情,但是基于Google搜索的方式略有不同,在IF语句上查看Python文档也没有太大帮助,这可能意味着我缺少了一些非常明显的东西,所以我d如果您能在这里帮助我,谢谢。
答案 0 :(得分:3)
因为您错过了space
。实际上,您的decision
是" add"
或其他任何值。
放入decision = message.content[11:]
。
或者更好的主意是decision = message.content[10:].strip()
答案 1 :(得分:0)
更好的是使用in
而不是==
:
if message.content.startswith('!juvialist'):
if ' add ' in message.content:
await client.send_message(message.channel, 'Added')
elif ' remove ' in message.content:
await client.send_message(message.channel, 'Removed')
else:
# etc.