Добрый вечер.
Знаю, что выкладывать большие куски кода - это свинство, но иначе не получится. Есть функция:
def check_possibility(figures, signs = [], is_100 = False):
for sign in ('', '+', '-', '*', '//', '**'):
signs.append(sign)
if len(signs) == 5:
numeric_expression = ''
numeric_expression += figures[0]
for i in range(5):
numeric_expression += signs[i]
numeric_expression += figures[i + 1]
result = eval(numeric_expression)
if result == 100:
return numeric_expression
else:
return False
elif is_100 == False:
is_100 = check_possibility(figures, signs, is_100)
return is_100
Она принимает список из 6 цифр
(цифры в строковом представлении).
По задумке эта функция должна с помощью рекурсии перебирать все возможные комбинации знаков
(или их отсутствие), расставлять между цифрами и проверять, равняется ли полученное выражения 100.
Интерпретатор возвращает это:
Traceback (most recent call last):
File "D:\Дмитрий\Documents\Python\programs\def.py", line 46, in
main()
File "D:\Дмитрий\Documents\Python\programs\def.py", line 42, in main
numeric_expression = check_possibility(number_list)
File "D:\Дмитрий\Documents\Python\programs\def.py", line 32, in check_possibility
Последнюю строку дублирует бесконечно.
Подозреваю, что в этой функции неверно все. Не могли бы вы объяснить, как мне создать верную функцию
(или даже исправить старую).