поэтому у меня есть список с числовыми и математическими операторами.
number = ['10', '6', '2', '6', '3', '1']
operators = ['+', '*', '//, -,'+']
Затем я строю свое утверждение следующим образом:
calculation = num[0] + operator[0] + num [1] ...
Теперь я взял найденную здесь функцию для генерации всехдействительная скобка.
def parens(left, right, string):
if left == 0 and right == 0:
arr.append(string)
if left > 0:
parens(left - 1, right + 1, string + "(")
if right > 0:
parens(left, right - 1, string + ")")
Это теперь выплевывает список, называемый круглыми скобками, который содержит все комбинации
Одна из возможных комбинаций теперь [(((((())))))]
, теперь я поместил его в уравнение вот так.
for index_paranthesis in range(0, 12, 2): # Steps of two, to get all uneven parenthesis
calculation += parenthesis[index_paranthesis]
calculation += number[i_number]
i_number += 1
calculation += parenthesis[index_paranthesis + 1] #to get the even indexed parenthesis
calculation += operators[i_operator]
i_operator += 1
Итак, после этого я получаю первую комбинацию скобок, такую как
calculation = (10(+(6(*(2(//)6)-)3)+)1)
Итак, проблема в том, что с eval (вычислением). Это говорит о том, что это синтаксическая ошибка. Я знаю, что это проблема, но мой вопрос заключается в том, как получить все комбинации функциональных скобок и применить их. Спасибо за ваше время все готово, и я надеюсь, что вы можете мне помочь.