task21
import inspect

def func(*args, **kwargs):
    func_name = args[0].__name__
    sig = inspect.signature(args[0])
    params = sig.parameters

    print(f"Имя функции: {func_name}")
    for i, param in enumerate(params.values()):
        param_type = "позиционный" if param.default == param.empty else "ключевой"
        param_hint = param.annotation if param.annotation != param.empty else "не задано"
        print(f"{i + 1}-й параметр: {param.name}, {param_type}, тип: {param_hint}")

def subfunc(a: int, b: float):
    return a + b

func(subfunc)
