summaryrefslogtreecommitdiffstatshomepage
path: root/docs/library/random.rst
blob: dd8b47c80f08481dc14250923b8ef0e5ea47a40f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
:mod:`random` -- generate random numbers
========================================

.. module:: random
   :synopsis: random numbers

This module implements a pseudo-random number generator (PRNG).

|see_cpython_module| :mod:`python:random` .

.. note::

   The following notation is used for intervals:

   - () are open interval brackets and do not include their endpoints.
     For example, (0, 1) means greater than 0 and less than 1.
     In set notation: (0, 1) = {x | 0 < x < 1}.

   - [] are closed interval brackets which include all their limit points.
     For example, [0, 1] means greater than or equal to 0 and less than
     or equal to 1.
     In set notation: [0, 1] = {x | 0 <= x <= 1}.

.. note::

   The :func:`randrange`, :func:`randint` and :func:`choice` functions are only
   available if the ``MICROPY_PY_URANDOM_EXTRA_FUNCS`` configuration option is
   enabled.


Functions for integers
----------------------

.. function:: getrandbits(n)

    Return an integer with *n* random bits (0 <= n <= 32).

.. function:: randint(a, b)

    Return a random integer in the range [*a*, *b*].

.. function:: randrange(stop)
              randrange(start, stop)
              randrange(start, stop[, step])

    The first form returns a random integer from the range [0, *stop*).
    The second form returns a random integer from the range [*start*, *stop*).
    The third form returns a random integer from the range [*start*, *stop*) in
    steps of *step*.  For instance, calling ``randrange(1, 10, 2)`` will
    return odd numbers between 1 and 9 inclusive.


Functions for floats
--------------------

.. function:: random()

    Return a random floating point number in the range [0.0, 1.0).

.. function:: uniform(a, b)

    Return a random floating point number N such that *a* <= N <= *b* for *a* <= *b*,
    and *b* <= N <= *a* for *b* < *a*.


Other Functions
---------------

.. function:: seed(n=None, /)

    Initialise the random number generator module with the seed *n* which should
    be an integer.  When no argument (or ``None``) is passed in it will (if
    supported by the port) initialise the PRNG with a true random number
    (usually a hardware generated random number).

    The ``None`` case only works if ``MICROPY_PY_URANDOM_SEED_INIT_FUNC`` is
    enabled by the port, otherwise it raises ``ValueError``.

.. function:: choice(sequence)

    Chooses and returns one item at random from *sequence* (tuple, list or
    any object that supports the subscript operation).