Форум программистов, компьютерный форум, киберфорум
Python: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 15.10.2012
Сообщений: 11

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

03.07.2023, 22:12. Показов 584. Ответов 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,306
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
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru