@rupyman

Проблема с def. После цикла for нечего не работает, как исправить?

Я работаю с api от телеграмма, но думаю это не меняет суть. Есть такая штука как Event - Событие. Допустим новое сообщение в группе. и после этого я запускаю def fitler(x). В x я и кладу новое сообщение. И я начинаю проверять есть ли в нём символы. Так же работая с api.Я столкнулся с тем, что чтобы отправлять сообщения по api используя def. Нужно при каждом вызове fitler(x) писать await fitler(x). А перед def писать async def. А перед самой командой отправления сообщения писать тоже await. Так вот дальше слова for нечего не выводится. Без def всё работает. Влияет ли на это async?
await fitler('Я пишу пример, тут есть слово пример')
async def fitler(x):
    print('Сообщение приходит')
    for i in x:

        if i == '-':
            b = 1
        if b == 1:
            c = c + 1
            if i == 'пример':
                a = a + 1
                j = 3
            else:

                f = f + 1
    print('Сообщение не выводится')
    await client.send_message(bot, 'Отправляем сообщение через api')
  • Вопрос задан
  • 199 просмотров
Пригласить эксперта
Ответы на вопрос 1
Незначительные модификации и текущий код вполне работает. По крайней мере он выполняется, выводит обе строки и завершается. Что он должен делать на самом деле мне не понятно.
import asyncio

async def fitler(x):
    b = 0
    print('Сообщение приходит')
    for i in x:
        if i == '-':
            b = 1
        if b == 1:
            c = c + 1
            if i == 'пример':
                a = a + 1
                j = 3
            else:
                f = f + 1
    print('Сообщение не выводится')
    
asyncio.get_event_loop().run_until_complete( fitler('Я пишу пример, тут есть слово пример'))

5cdb15259cd25346744533.png
https://repl.it/repls/AdventurousWorseDisplaymanager

И я бы не рекомендовал погружаться в асинхронный код, пока вы ещё не твердо разобрались с основами python
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы