Вопрос по функциям

Finch

Новичок
Пользователь
Апр 30, 2022
15
1
3
Привет, нужна помощь по задачке, не пойму как ее можна решить

Напишите функцию с именем `choose_func`, которая принимает список чисел и 2 функции обратного вызова. Если все числа внутри списка положительные, выполнить первую функцию в этом списке и вернуть ее результат. В противном случае вернуть результат второго

Python:
def choose_func(nums: list, func1, func2):

       pass


nums1 = [1, 2, 3, 4, 5]

nums2 = [1, -2, 3, -4, 5]



def square_nums(nums):

    return [num ** 2 for num in nums]



def remove_negatives(nums):

    return [num for num in nums if num > 0]





assert choose_func(nums1, square_nums, remove_negatives) == [1, 4, 9, 16, 25]



assert choose_func(nums2, square_nums, remove_negatives) == [1, 3, 5]
 
Последнее редактирование:

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
как вставлять код
1647162378032-png.1702
 
  • Мне нравится
Реакции: Finch

Finch

Новичок
Пользователь
Апр 30, 2022
15
1
3
Поправил сорян )
 
  • Мне нравится
Реакции: Vershitel_sudeb

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
Например так:
Python:
def choose_func(nums: list, func1, func2):
    for i in nums:
        # Если встретили не положительное число, возвращаем результат func2
        if i <= 0:
            return func2()
            # Если не встретили не положительное число, возвращаем результат func1
    return func1()
 

Finch

Новичок
Пользователь
Апр 30, 2022
15
1
3
а зачем там параметр list в условии?
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
а зачем там параметр list в условии?
Это не параметр, а аннотация типов, подсказка для человека, какой тип данных надо передать в параметр.
 

Форум IT Специалистов