Ошибка типа: 'in <string>' требует строку в качестве левого операнда, а не списка (discord.py) - PullRequest
0 голосов
/ 01 февраля 2020

Попытка создать очень простой c чат-бот для разногласий.

Теперь я знаю, почему в моих кодах есть ошибка, и есть другой вопрос, который почти идентичен моему. Однако я попробовал решение для другого, и, к сожалению, оно не сработало в моем случае. Итак, кто-нибудь знает, как мне исправить эту функцию?

@client.event
async def on_message(message):
r1 = ['Hello!', 'Hi!', 'Greetings!']
r2 = ['I am feeling excellent!' 'Working today feels great!']
if client.user.id != message.author.id:
    if client.user.mentioned_in(message) and message.mention_everyone is False:
        if 'help' in message.content.lower():
            await message.channel.send(
            'How may I assist you?')
        else:
            await message.add_reaction('?')  # :eyes:
    if ['hi', 'hello'] in message.content.lower():
        await message.channel.send(f'{random.choice(r1)}')

Это даст мне ошибку типа, потому что у меня есть список перед message.content.lower ()


    if message.content.lower() in ['How are you?', 'How are you doing?', 'How are you feeling?']:
        await message.channel.send(f'{random.choice(r2)}')

Хотя это просто сделает бот не отвечающим (не ожидая, что он будет работать, но все равно попытался), даже не сообщает об ошибке в консоли.

Опять же, я чувствую, что пропустил что-то действительно очевидное но я просто не мог понять это. Любая помощь приветствуется. Кроме того, я знаю, что могу разбить список на части и делать каждое слово отдельно, но это сделает его излишне запутанным.

1 Ответ

0 голосов
/ 01 февраля 2020

можно решить, если есть (i в message.content.lower (). Split () для i в ['hi', 'hello']). Спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...