Решить условия с кронштейнами и логическими операторами в Python [закрыто]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Решить условия с кронштейнами и логическими операторами в Python [закрыто]

Сообщение Anonymous »

обновление 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»