bpo-38881: choices() raises ValueError when all weights are zero (GH-17362)
diff --git a/Doc/library/random.rst b/Doc/library/random.rst
index 1bd1856..933da3f 100644
--- a/Doc/library/random.rst
+++ b/Doc/library/random.rst
@@ -165,8 +165,9 @@
The *weights* or *cum_weights* can use any numeric type that interoperates
with the :class:`float` values returned by :func:`random` (that includes
- integers, floats, and fractions but excludes decimals). Weights are
- assumed to be non-negative.
+ integers, floats, and fractions but excludes decimals). Behavior is
+ undefined if any weight is negative. A :exc:`ValueError` is raised if all
+ weights are zero.
For a given seed, the :func:`choices` function with equal weighting
typically produces a different sequence than repeated calls to
@@ -177,6 +178,9 @@
.. versionadded:: 3.6
+ .. versionchanged:: 3.9
+ Raises a :exc:`ValueError` if all weights are zero.
+
.. function:: shuffle(x[, random])