обновление 24.01.2025
im Использование сейчас pyparsing
class ConditionExtractor:
def __init__(self):
# Define basic grammar components
self.identifier = Word(alphas + "_", alphanums + "_")
self.hex_literal = Literal("0x") + Word("0123456789abcdefABCDEF")
self.comparison_operators = Literal("==") | Literal("!=") | Literal(">") | Literal(" 0x0"
parsed_expression = self.expr.parseString(expression)
print(parsed_expression)
# Run the ConditionExtractor
if __name__ == "__main__":
ConditionExtractor()
выход
[[['Signal_1', '==', '0x', '0'], '&&', [[['Signal_2', '==', '0x', '1'], '&&', ['Signal_3', '!=', '0x', '1']], '||', [['Signal_4', '==', '0x', '1'], '&&', ['Signal_5', '!=', '0x', '1']]], '&&', ['Signal_6', '>', '0x', '0']]]
лучшее представление:
[
['Signal_1', '==', '0x0'],
'&&',
[
[
['Signal_2', '==', '0x1'],
'&&',
['Signal_3', '!=', '0x1']
],
'||',
[
['Signal_4', '==', '0x1'],
'&&',
['Signal_5', '!=', '0x1']
]
],
'&&',
['Signal_6', '>', '0x0']
]
я пытаюсь использовать эту структуру для архивирования нужных мне результатов
это пример выражения:
expression = "Signal_1 == 0x0 && ( ( Signal_2== 0x1 && Signal_3!= 0x1 ) || ( Signal_4 == 0x1 && Signal_5 != 0x1 ) ) && Signal_5 > 0x0"
Я хочу результат как строку, такой как
moeglicher pfad 1:
signal_1 == 0x0 && signal_2 == 0x1 && signal_3! = 0x1 && signal_5> 0x0
moeglicher pfad 2:
signal_1 == 0x0 && signal_4 == 0x1 && signal_5! = 0x1 && signal_5> 0x0 < /p>
, какие Libaries я могу использовать для достижения своей цели, как бы выглядел образец кода с этот либария? Что касается сигналов. Но в отношении скобок и логических операторов для запуска всех возможных путей и позволения операторам выходить. < /P>
Другой пример для проверки примера кода: < /p>
expression = ( Signal_1== 0x0 || Signal_1== 0x2 || Signal_1== 0x4 ) && ( Signal_2 == 0x0 || Signal_2 == 0x2 || Signal_2 == 0x4 ) && Signal_3 == 0
Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-python
Решить условия с кронштейнами и логическими операторами в Python [закрыто] ⇐ Python
Программы на Python
1737731301
Anonymous
[b] обновление 24.01.2025 [/b]
im Использование сейчас pyparsing
class ConditionExtractor:
def __init__(self):
# Define basic grammar components
self.identifier = Word(alphas + "_", alphanums + "_")
self.hex_literal = Literal("0x") + Word("0123456789abcdefABCDEF")
self.comparison_operators = Literal("==") | Literal("!=") | Literal(">") | Literal(" 0x0"
parsed_expression = self.expr.parseString(expression)
print(parsed_expression)
# Run the ConditionExtractor
if __name__ == "__main__":
ConditionExtractor()
выход
[[['Signal_1', '==', '0x', '0'], '&&', [[['Signal_2', '==', '0x', '1'], '&&', ['Signal_3', '!=', '0x', '1']], '||', [['Signal_4', '==', '0x', '1'], '&&', ['Signal_5', '!=', '0x', '1']]], '&&', ['Signal_6', '>', '0x', '0']]]
лучшее представление:
[
['Signal_1', '==', '0x0'],
'&&',
[
[
['Signal_2', '==', '0x1'],
'&&',
['Signal_3', '!=', '0x1']
],
'||',
[
['Signal_4', '==', '0x1'],
'&&',
['Signal_5', '!=', '0x1']
]
],
'&&',
['Signal_6', '>', '0x0']
]
я пытаюсь использовать эту структуру для архивирования нужных мне результатов
это пример выражения:
expression = "Signal_1 == 0x0 && ( ( Signal_2== 0x1 && Signal_3!= 0x1 ) || ( Signal_4 == 0x1 && Signal_5 != 0x1 ) ) && Signal_5 > 0x0"
Я хочу результат как строку, такой как
[b] moeglicher pfad 1: [/b]
signal_1 == 0x0 && signal_2 == 0x1 && signal_3! = 0x1 && signal_5> 0x0
[b] moeglicher pfad 2: [/b]
signal_1 == 0x0 && signal_4 == 0x1 && signal_5! = 0x1 && signal_5> 0x0 < /p>
, какие Libaries я могу использовать для достижения своей цели, как бы выглядел образец кода с этот либария? Что касается сигналов. Но в отношении скобок и логических операторов для запуска всех возможных путей и позволения операторам выходить. < /P>
Другой пример для проверки примера кода: < /p>
expression = ( Signal_1== 0x0 || Signal_1== 0x2 || Signal_1== 0x4 ) && ( Signal_2 == 0x0 || Signal_2 == 0x2 || Signal_2 == 0x4 ) && Signal_3 == 0
Подробнее здесь: [url]https://stackoverflow.com/questions/79378207/solve-nestedt-condition-with-brackets-and-logical-operators-in-python[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия