Помогите найти ошибки в решении задачи PYTHON

Рейтинг: 0Ответов: 0Опубликовано: 08.01.2023

Нужно реализовать функцию numbers_handler, которая принимает список чисел numbers и три колбэка: -before - колбек, который первым вызывается для каждого из чисел -action - вызывается вторым для каждого из чисел -after - вызывается последним для каждого из чисел Каждый из колбэков имеет единственный параметр - число number. Функция должна вызвать все три колбэка в указанном порядке для каждого из чисел. Кроме того, надо реализовать значения этих колбэков по умолчанию.

Для before нужно написать функцию new_number, которая принимает число и выводит строку "Received a new number: {number}" с помощью функции print.

Для action нужно написать функцию is_positive, которая принимает число и выводит строку "{number} is a positive number", если число number - положительное, строку Zero, если число равно нулю, и строку "{number} is a negative number", если число отрицательное.

Для after нужно написать функцию print_bye, которая просто выводит строку Bye!.

Например:

numbers_handler([1, -1, 0]) # вызываем функцию со значениями функций по умолчанию
# на экран выведется:
# Received a new number: 1
# 1 is a positive number
# Bye!
# Received a new number: -1
# -1 is a negative number
# Bye!
# Received a new number: 0
# Zero
# Bye!
def print_hello(number):
    print("Hello!")

def some_action(number):
    print("Action!")

Мой код работает не корректно, помогите, пожалуйста, исправить ошибки:

from typing import Callable


def new_number(number: int) -> None:
   print(f"Received a new number: {number}")


def is_positive(number: int) -> None:
   if number > 0:
       print(f"{number} is a positive")
   elif number == 0:
       print("Zero")
   elif number < 0:
       print(f"{number} is a negative")


def print_bye(number: int) -> None:
   print("Bye")


def numbers_handler(
   numbers: list,
   before: Callable = new_number,
   action: Callable = is_positive,
   after: Callable = print_bye,
) -> None:
   for number in numbers:
       print(before(number), action(number), after(number))

Ответы

Ответов пока нет.