From 4168f1e46041645cf54bd053981270d8c4c1313b Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Fri, 1 May 2020 10:34:19 -0700 Subject: Simplify choice()'s interaction with the private _randbelow() method (GH-19831) --- Lib/random.py | 14 +++++--------- Lib/test/test_random.py | 6 +++--- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/Lib/random.py b/Lib/random.py index 80fe447..8f840e1 100644 --- a/Lib/random.py +++ b/Lib/random.py @@ -265,10 +265,10 @@ class Random(_random.Random): return self.randrange(a, b+1) def _randbelow_with_getrandbits(self, n): - "Return a random int in the range [0,n). Raises ValueError if n==0." + "Return a random int in the range [0,n). Returns 0 if n==0." if not n: - raise ValueError("Boundary cannot be zero") + return 0 getrandbits = self.getrandbits k = n.bit_length() # don't use (n-1) here because n can be 1 r = getrandbits(k) # 0 <= r < 2**k @@ -277,7 +277,7 @@ class Random(_random.Random): return r def _randbelow_without_getrandbits(self, n, int=int, maxsize=1<