Skip to content

Commit

Permalink
bpo-46737: Add default arguments to random.gauss and normalvariate (G…
Browse files Browse the repository at this point in the history
  • Loading branch information
ZackerySpytz committed Feb 15, 2022
1 parent 1d81fdc commit 08ec801
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 4 deletions.
10 changes: 8 additions & 2 deletions Doc/library/random.rst
Expand Up @@ -320,7 +320,7 @@ be found in any statistics text.
math.gamma(alpha) * beta ** alpha


.. function:: gauss(mu, sigma)
.. function:: gauss(mu=0.0, sigma=1.0)

Normal distribution, also called the Gaussian distribution. *mu* is the mean,
and *sigma* is the standard deviation. This is slightly faster than
Expand All @@ -333,6 +333,9 @@ be found in any statistics text.
number generator. 2) Put locks around all calls. 3) Use the
slower, but thread-safe :func:`normalvariate` function instead.

.. versionchanged:: 3.11
*mu* and *sigma* now have default arguments.


.. function:: lognormvariate(mu, sigma)

Expand All @@ -342,10 +345,13 @@ be found in any statistics text.
zero.


.. function:: normalvariate(mu, sigma)
.. function:: normalvariate(mu=0.0, sigma=1.0)

Normal distribution. *mu* is the mean, and *sigma* is the standard deviation.

.. versionchanged:: 3.11
*mu* and *sigma* now have default arguments.


.. function:: vonmisesvariate(mu, kappa)

Expand Down
4 changes: 2 additions & 2 deletions Lib/random.py
Expand Up @@ -538,7 +538,7 @@ def triangular(self, low=0.0, high=1.0, mode=None):
low, high = high, low
return low + (high - low) * _sqrt(u * c)

def normalvariate(self, mu, sigma):
def normalvariate(self, mu=0.0, sigma=1.0):
"""Normal distribution.
mu is the mean, and sigma is the standard deviation.
Expand All @@ -559,7 +559,7 @@ def normalvariate(self, mu, sigma):
break
return mu + z * sigma

def gauss(self, mu, sigma):
def gauss(self, mu=0.0, sigma=1.0):
"""Gaussian distribution.
mu is the mean, and sigma is the standard deviation. This is
Expand Down
4 changes: 4 additions & 0 deletions Lib/test/test_random.py
Expand Up @@ -409,6 +409,10 @@ def test_randbytes(self):
self.assertRaises(ValueError, self.gen.randbytes, -1)
self.assertRaises(TypeError, self.gen.randbytes, 1.0)

def test_mu_sigma_default_args(self):
self.assertIsInstance(self.gen.normalvariate(), float)
self.assertIsInstance(self.gen.gauss(), float)


try:
random.SystemRandom().random()
Expand Down
@@ -0,0 +1,2 @@
:func:`random.gauss` and :func:`random.normalvariate` now have default
arguments.

0 comments on commit 08ec801

Please sign in to comment.