Skip to content

Commit 7b42689

Browse files
committed
refactor: rename random_from_range func to randrange + full remake + add step parameter
1 parent d0552fb commit 7b42689

1 file changed

Lines changed: 21 additions & 3 deletions

File tree

pycustomrand/random_generator.py

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,27 @@ def random() -> float:
7070
# -------------------- Числовые функции --------------------
7171

7272
@staticmethod
73-
def random_from_range(start: int, end: int) -> int:
74-
"""Возвращает случайно выбранный элемент из диапазона [start, end]."""
75-
return true_round((end - start) * (PseudoRandom.random()) + start)
73+
def randrange(start: int, stop: int = None, step: int = 1) -> int:
74+
"""
75+
Возвращает случайное число из диапазона [start, stop).
76+
Верхняя граница НЕ включается.
77+
78+
Примеры:
79+
randrange(10) -> от 0 до 9
80+
randrange(1, 10) -> от 1 до 9
81+
randrange(0, 10, 2) -> чётное число от 0 до 8
82+
"""
83+
if stop is None:
84+
# Если передан один аргумент, например randrange(10), то считаем его за stop, а start за 0
85+
stop = start
86+
start = 0
87+
88+
range_object = range(start, stop, step)
89+
90+
if not range_object:
91+
raise ValueError("Пустой диапазон для генерации")
92+
93+
return range_object[int(PseudoRandom.random() * len(range_object))]
7694

7795

7896
# -------------------- Функции для чисел с плавающей точкой --------------------

0 commit comments

Comments
 (0)