]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-46737: Add default arguments to random.gauss and normalvariate (GH-31360)
authorZackery Spytz <zspytz@gmail.com>
Tue, 15 Feb 2022 23:12:15 +0000 (15:12 -0800)
committerGitHub <noreply@github.com>
Tue, 15 Feb 2022 23:12:15 +0000 (17:12 -0600)
Doc/library/random.rst
Lib/random.py
Lib/test/test_random.py
Misc/NEWS.d/next/Library/2022-02-15-07-39-43.bpo-46737.6Pnblt.rst [new file with mode: 0644]

index da4a4f61e456776bb41d3915548482e7eab9c5d0..96c6300ea16f58857102109a7a55a047ee5a9082 100644 (file)
@@ -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
@@ -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)
 
@@ -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)
 
index 6d7b617e33a3002ffc5a4fca757d97e31835a2cc..1f3530e880fce2faa338376673790c7733cc6a27 100644 (file)
@@ -538,7 +538,7 @@ class Random(_random.Random):
             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.
@@ -559,7 +559,7 @@ class Random(_random.Random):
                 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
index 5b066d23dd3fd6737155d7813436696323e15026..32e7868ba4de7602b9efae9e89e9c98ffa617de3 100644 (file)
@@ -409,6 +409,10 @@ class TestBasicOps:
         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()
diff --git a/Misc/NEWS.d/next/Library/2022-02-15-07-39-43.bpo-46737.6Pnblt.rst b/Misc/NEWS.d/next/Library/2022-02-15-07-39-43.bpo-46737.6Pnblt.rst
new file mode 100644 (file)
index 0000000..c3f693a
--- /dev/null
@@ -0,0 +1,2 @@
+:func:`random.gauss` and :func:`random.normalvariate` now have default
+arguments.