From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Tue, 20 Apr 2021 06:15:50 +0000 (-0700) Subject: Improve the error message for choices(population, 10) (GH-25267) (GH-25477) X-Git-Tag: v3.9.5~68 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fa03efda3dc6ad118788bebc61079cd481c0b24c;p=thirdparty%2FPython%2Fcpython.git Improve the error message for choices(population, 10) (GH-25267) (GH-25477) --- diff --git a/Lib/random.py b/Lib/random.py index 36e16a9063b5..53252764a5b5 100644 --- a/Lib/random.py +++ b/Lib/random.py @@ -485,7 +485,15 @@ class Random(_random.Random): floor = _floor n += 0.0 # convert to float for a small speed improvement return [population[floor(random() * n)] for i in _repeat(None, k)] - cum_weights = list(_accumulate(weights)) + try: + cum_weights = list(_accumulate(weights)) + except TypeError: + if not isinstance(weights, int): + raise + k = weights + raise TypeError( + f'The number of choices must be a keyword argument: {k=}' + ) from None elif weights is not None: raise TypeError('Cannot specify both weights and cumulative weights') if len(cum_weights) != n: