Задача 5C. Take

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб

Условие

Требуется реализовать на языке программирования Python функцию

from typing import TypeVar
from collections.abc import Generator, Iterable
T = TypeVar('T')
def take(iterable: Iterable[T], *, skip: int = 0, step: int = 1, count: int | None = None) -> Generator[T, None, None]:
'''Yields every `step`-th value from `iterable` skipping first `skip` values.
If `count` is not None yields this many values at most.
Args:
iterable: Iterable to take values from
skip: Number of values to skip from the beginning, non-negative integer
step: Skip `step` - 1 values between every yield, positive integer
count: Yields this many values at most, None or non-negative integer
Raises:
ValueError:
`skip` or `count` is less than 0
`step` is less than 1
TypeError:
`skip`, `step` is not an int or `iterable` is not an Iterable
`count` is not an int or None
'''
pass

Формат выходных данных

Код решения должен содержать только определение и реализацию функции.

Примеры тестов

Стандартный вход Стандартный выход
1
print(*take(range(100), skip=5, step=5, count=5))
5 10 15 20 25

0.042s 0.008s 13