Написать модуль, в котором будет две фальшивые функции: randrange() и randint(), которые принимают тек же параметры, что и настоящие. При каждом чётном по порядку вызове функция randint(a, b) возвращает a, при нечётном — b. Функция randrange() может принимать от 1 до 4 параметров. Четвёртый параметр она игнорирует, а начало диапазона a, конец диапазона b и шаг d интерпретирует так. Если при очередном вызове эти величины совпадают с предыдущим вызовом, то randrange() сперва работает как если бы возвращала очередной элемент range(), то есть сначала a, затем a+d и т. д., пока не доберётся до конца диапазона, после чего продолжает с начала диапазона (шаг при этом не сбивается, см. пример). Пустых диапазонов (когда знак шага не соответствует концам диапазона) во входных данных нет. Если же при очередном вызове значения a, b или d оказываются иными, процесс запускается с начала.
print(*(mod.randrange(5) for i in range(6))) print(*(mod.randrange(10,15,2) for i in range(7))) print(*(mod.randrange(20,36,3,False) for i in range(9))) print(*(mod.randint(5,7) for i in range(3)), *(mod.randint(5,17) for i in range(5)))
Hint: в этом упражнении не запрещено™ использовать глобальное пространство имён модуля.
0 1 2 3 4 0 10 12 14 11 13 10 12 20 23 26 29 32 35 22 25 28 5 7 5 17 5 17 5 17