Python 3 if / elif / else运算符始终转到else

时间:2018-12-02 13:07:45

标签: python discord.py

我正在使用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语句将决定发生了什么,如果是添加或删除它会执行某些操作,否则它告诉用户该参数是错误的,但是问题是,即使它是正确的,它也总是转到其他位置并返回错误

错误:

Image

我已经尝试过做同样的事情,但是基于Google搜索的方式略有不同,在IF语句上查看Python文档也没有太大帮助,这可能意味着我缺少了一些非常明显的东西,所以我d如果您能在这里帮助我,谢谢。

2 个答案:

答案 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.