10BC0 bpo-46737: Add default arguments to random.{gauss,normalvariate} by ZackerySpytz · Pull Request #31360 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

10BC0
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions Doc/library/random.rst
Original file line number Diff line number Diff line change
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) Us F440 e 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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
:func:`random.gauss` and :func:`random.normalvariate` now have default
arguments.
0