Я работаю над школьным упражнением по лямбдам, в котором вам нужно заполнить код, чтобы программа заработала. Я могу видеть, каким должен быть результат, но я просто не могу преобразовать свои идеи в код. Не могли бы вы помочь?
Это упражнение:
FILTER принимает в качестве входных данных функцию (предикат) и два числа (текущее и пороговое). Он рекурсивно создает строку, в которой числа (от текущего до порогового) сохраняются, только если результат применения предиката к таким числам истинен.
predicate1 проверяет, делится ли ввод на 2
predicate2 проверяет, является ли ввод делится на 3
Test1: использует predicate1
Test2: использует predicate2
Это код: подчеркивания - это место, где я могу поместить код:
def filter(predicate, current, threshold):
if ________ > _________
return ''
else:
_______________________
_______________________
threshold = 20
predicate1 = lambda x: x % 2 == 0
predicate2 = lambda x: x % 3 == 0
res = filter(predicate1, 1, threshold)
print()
Я придумал это ниже, но он не работает:
def filter(predicate, current, threshold):
if current > threshold:
return ''
else:
new_result = filter(predicate, predicate(current), threshold)
result = str(predicate(current)) + ' ' + new_result
return result
threshold = 20
predicate1 = lambda x: x % 2 == 0
predicate2 = lambda x: x % 3 == 0
res = filter(predicate1, 1, threshold)
print()
какие-нибудь советы?