1 / 1 / 0
Регистрация: 15.10.2012
Сообщений: 11

Нашел баг в питоне либо я дурак(

03.07.2023, 22:12. Показов 591. Ответов 2

Студворк — интернет-сервис помощи студентам
Привет форумчане. Пишу программу для работы для обучения спецов в ДЦ.
Нужно следовать плану работ и тд и тп.
есть 2 набора ключевых слов которые должны быть удовлетворены для перехода в функцию.

Вот фрагмент блока

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@dp.message_handler(lambda message: all(word not in message.text for word in ["3","п.3","три","третий","пункт.3", 'п.п.3', 'п3', "/cancel"]) and all(word not in message.text for word in ['закончил', 'завершил', 'готов', 'готово', 'ок']), state=FSM_d.photo)
async def process_correct_invalid(message: types.Message):
    return await message.reply(f"Что значит *{message.text}*? Может более корректно будем излагать свои мысли в рабочем чате?")
 
 
 
 
@dp.message_handler(state=FSM_d.photo)
async def process_photo(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        field = data['field']
        if f'@{message.from_user.username}' == field:   
            data['photo'] = message.text
        else:
            await message.reply("ты не филд")
            return
 
        
    await FSM_d.next()
    await message.answer(f"прошу экперта {data['expert']} дать разрешение идти дальше.")
Предполагается следующая логика которая почему то не отрабатывает(((
Code
1
2
3
4
5
6
7
8
Ввод: а
Вывод: Что значит *а*? Может более корректно будем излагать свои мысли в рабочем чате?
Ввод:закончил
Вывод: Что значит *закончил*? Может более корректно будем излагать свои мысли в рабочем чате?
Ввод: п3
Вывод: Что значит *п3*? Может более корректно будем излагать свои мысли в рабочем чате?
Ввод: п3 завершил
Вывод: прошу экперта *никнейм эксперта* дать разрешение идти дальше.
Но получается следующая
Code
1
2
Ввод: завершил
Вывод: прошу экперта *никнейм эксперта* дать разрешение идти дальше.
НО! При этом
Code
1
2
Ввод: п3
Вывод: Что значит *п3*? Может более корректно будем излагать свои мысли в рабочем чате?
Что очень странно.

Но следует только заменить в process_correct_invalid and на or все начинает работать так как я изначально хотел - чего быть не должно впринципе

Code
1
2
3
4
5
6
7
8
Ввод: а
Вывод: Что значит *а*? Может более корректно будем излагать свои мысли в рабочем чате?
Ввод:закончил
Вывод: Что значит *закончил*? Может более корректно будем излагать свои мысли в рабочем чате?
Ввод: п3
Вывод: Что значит *п3*? Может более корректно будем излагать свои мысли в рабочем чате?
Ввод: п3 завершил
Вывод: прошу экперта *никнейм эксперта* дать разрешение идти дальше.

Может я дурак? помогите разобраться....

с уважением, zero50x
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.07.2023, 22:12
Ответы с готовыми решениями:

Либо я дурак либо лыжи не едут
Процессор intel core i7 4790 Видеокарта Видеокарта GIGABYTE GeForce GTX 1070 8g оперативка 16 тестил связку на гта и при очень...

Баг или я дурак =)
Подскажите что делаю не так. в классе Base создаю объект класса Pacinet. Создается ошибок нет,ничего красным не подчеркнуто. На...

Баг или я дурак?
Код: Суть кода в выводе рандомного стринга (10 разных) Проблема: Почему-то выводится один и тот самый стринг, + иногда 2ой стринг тоже...

2
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,307
04.07.2023, 12:35
Для начала не плохо было бы четко описать логику процесса, прежде всего для себя Во-вторых, разобраться в отличиях логических операторов.

Насколько я понял, для "разрешения" в сообщении должны быть одновременно указаны слова из обоих списков хотя бы по одному разу, при этом в коде Вы проверяет полное отсутствие совпадений по каждому списку, с такой постоновкой задачи как раз вариант с OR правильный
0
1 / 1 / 0
Регистрация: 15.10.2012
Сообщений: 11
04.07.2023, 20:46  [ТС]
так вот я и не понимаю почему OR правильный))
Грубо говоря мне нет надобности пропускать сообщение где есть слово только из одного набора, поэтому я их разделил на 2 набора.
Получается есть 2 списка ключевых слов которых не должно быть в тексте чтобы вызвать функцию
Code
1
process_correct_invalid
.
Например
есть предложение "п3 все"
1я проверка
["3","п.3","три","третий","пункт.3", 'п.п.3', 'п3', "/cancel"] - слово "п3" найдено
2я проверка
['закончил', 'завершил', 'готов', 'готово', 'ок'] - совпадений нет
Мне нужно чтобы и в 1м и во 2м условии было найдено хотябы одно слово чтобы функция
Code
1
process_correct_invalid
не вызывалась
И получается зачем питону идти дальше проверять следующее условие если там оператор OR?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.07.2023, 20:46
Помогаю со студенческими работами здесь

Баг компилятора или я дурак?
До:https://www.cyberforum.ru/attachment.php?attachmentid=840160&stc=1&d=1496427343 ...

Засада с машинным эпсилон, или Либо я дурак
Эту задачку выполняют все начинающие. Так вот, берём два простеньких кода. Они настолько коротки, тупы и очевидны, что я даже не...

Либо я дурак либо....
Короче задание такое...создать матрицу, определить сумму элементов в тех стлбцах которые не содержат отрицательных элементов...но дело не в...

Нашёл баг в C#
m2baei8OhDw Полный код: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...

А не баг ли я нашел. JavaCV и нейронные сети
Доброго времени суток! Конечно судить о баге пока рано, но что-то тут непонятное. А конкретно, есть такой код: CvMat output =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru