1961
Комментарий:
|
← Версия 3 от 2019-11-14 10:27:18 ⇥
2131
|
Удаления помечены так. | Добавления помечены так. |
Строка 3: | Строка 3: |
Написать модуль, в котором будет две фальшивые функции: `randrange()` и `randint()`, которые принимают тек же параметры, что и настоящие. При каждом чётном по порядку вызове функция `randint(a, b)` возвращает `a`, при нечётном — `b`. Функция `randrange()` может принимать от 1 до 4 параметров. Четвёртый параметр она игнорирует, а начало диапазона `a`, конец диапазона `b` и шаг `d` интерпретирует так. Если при очередном вызове эти величины совпадают с предыдущим вызовом, то `randrange()` сперва работает как если бы возвращала очередной элемент `range()`, то есть сначала `a`, затем `a+d` и т. д., пока не доберётся до конца диапазона, после чего продолжает с начала диапазона (шаг при этом не сбивается, см. пример). Если же при очередном вызове значения `a`, `b` или `d` оказываются иными, процесс запускается с начала. | Написать модуль, в котором будет две фальшивые функции: `randrange()` и `randint()`, которые принимают тек же параметры, что и настоящие. При каждом чётном по порядку вызове функция `randint(a, b)` возвращает `a`, при нечётном — `b`. Функция `randrange()` может принимать от 1 до 4 параметров. Четвёртый параметр она игнорирует, а начало диапазона `a`, конец диапазона `b` и шаг `d` интерпретирует так. Если при очередном вызове эти величины совпадают с предыдущим вызовом, то `randrange()` сперва работает как если бы возвращала очередной элемент `range()`, то есть сначала `a`, затем `a+d` и т. д., пока не доберётся до конца диапазона, после чего продолжает с начала диапазона (шаг при этом не сбивается, см. пример). Пустых диапазонов (когда знак шага не соответствует концам диапазона) во входных данных нет. Если же при очередном вызове значения `a`, `b` или `d` оказываются иными, процесс запускается с начала. |
Написать модуль, в котором будет две фальшивые функции: 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