Различия между версиями 2 и 3
Версия 2 от 2019-11-14 10:20:36
Размер: 1961
Редактор: FrBrGeorge
Комментарий:
Версия 3 от 2019-11-14 10:27:18
Размер: 2131
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 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


CategoryHomework

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