Сначала используйте *args
, чтобы сохранить неизвестное количество аргументов в качестве кортежа.
Во-вторых, all(args)
возвращает только Ture
или False
, но операция and
может возвращать значение ( Здесь почему).Поэтому нам нужно использовать reduce
.
Вот решение:
custom_function = lambda *args: reduce(lambda x,y: x and y, args)
Тест 1: аргументы Ture или False
>>> custom_function(True,False,True,False)
False
>>> custom_function(True,True,True)
True
Тест 2: аргументыявляются значениями
>>> custom_function(1,2,3,4,3,2)
2
>>> custom_function('a','b','d','s')
's'
Тест 3: аргументы представляют собой комбинацию bool и значений
>>> custom_function(1,2,True,4,3,2)
2
>>> custom_function(1,2,False,4,3,2)
False
Обратите внимание, что три теста верны в соответствии с определением логического И (и):
Возвращает первое значение Falsey, если оно есть, иначе возвращает последнее значение в выражении.