Написать модуль, в котором будет две фальшивые функции: 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


CategoryHomework

LecturesCMC/PythonIntro2019/Homework_FakeRnd (последним исправлял пользователь FrBrGeorge 2019-11-14 10:27:18)