diff --git a/Lib/random.py b/Lib/random.py index 4d9a047b027974..d6f5337d40f6ba 100644 --- a/Lib/random.py +++ b/Lib/random.py @@ -336,8 +336,11 @@ def randrange(self, start, stop=None, step=_ONE): def randint(self, a, b): """Return random integer in range [a, b], including both end points. """ - - return self.randrange(a, b+1) + a = _index(a) + b = _index(b) + if b < a: + raise ValueError(f"empty range in randint({a}, {b})") + return a + self._randbelow(b - a + 1) ## -------------------- sequence methods ------------------- diff --git a/Misc/NEWS.d/next/Library/2025-03-19-20-37-07.gh-issue-131435.y8KMae.rst b/Misc/NEWS.d/next/Library/2025-03-19-20-37-07.gh-issue-131435.y8KMae.rst new file mode 100644 index 00000000000000..1a9810a8fed7d5 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2025-03-19-20-37-07.gh-issue-131435.y8KMae.rst @@ -0,0 +1 @@ +10-20% performance improvement of :func:`random.randint`.