首页 > 解决方案 > Python 3 if/elif/else 运算符总是转到 else

问题描述

我正在使用 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 在添加之前将所有内容切片并放入一个称为决策的字符串中,然后一个 IF 语句决定会发生什么,如果它是添加或删除它会执行某些操作,否则它会告诉用户认为参数错误,但问题是,即使它是正确的,它总是去 else 并返回错误

错误:

图片

我试过做同样的事情,但基于谷歌搜索的方式略有不同,查看关于 IF 语句的 Python 文档也没有多大帮助,这可能意味着我遗漏了一些非常明显的东西,所以我会很感激如果你能在这里帮助我,谢谢。

标签: pythondiscord.py

解决方案


因为你错过了space。事实上,你decision" add"或其他什么。

代替decision = message.content[11:]

或者更好的主意是decision = message.content[10:].strip()


推荐阅读