urandom - Generate Random Numbers

urandom module provides the tool for random number generation.

Generating Elements in Object obj Randomly

urandom.choice

urandom.choice(obj)

Generates elements in object obj randomly. The type of obj is string.

Parameter

  • obj - String type.

Return Value

String type. Some random element in obj.

Example

>>> import urandom
>>> urandom.choice("QuecPython")
't'

Generating A Decimal Number in the Range of k bits Randomly

urandom.getrandbits

urandom.getrandbits(k)

Generates a decimal number in the range of k bits randomly.

Parameter

  • k - Integer type. Indicates the range.(Unit: bit)

Return Value

Integer type. A random decimal number in the range of k bits.

Example

>>> import urandom
>>> urandom.getrandbits(1)  #1 bit binary, ranging from 0 to 1 (decimal: 0–1)
1
>>> urandom.getrandbits(1)
0
>>> urandom.getrandbits(8)  #8 bit binary,ranging from 0000 0000 to 1111 11111 (decimal:0–255)
224

Generating An Integer Between start And end Randomly

urandom.randint

urandom.randint(start, end)

Generates an integer between start and end.

Parameter

  • start - Integer type. The minimum value in the interval.
  • end - Integer type. The maximum value in the interval.

Return Value

Integer type. A random integer between start and end.

Example

>>> import urandom
>>> urandom.randint(1, 4)
4
>>> urandom.randint(1, 4)
2

Generating A Floating Point Between 0 and 1 Randomly

urandom.random

urandom.random()

Generates a floating point between 0 and 1.

Return Value

Floating point. The floating point between 0 and 1.

Example

>>> import urandom
>>> urandom.random()
0.8465231

Generating A Positive Integer Ascending to step And Between start and end Randomly

urandom.randrange

urandom.randrange(start, end, step)

Generates a positive integer ascending to step and between start and end randomly.

Parameter

  • start - Integer type. The minimum value in the interval.
  • end - Integer type. The maximum value in the interval.
  • step - Integer type. The length of ascending.

Return Value

Integer type. A random integer between start and end.

Example

>>> import urandom
>>> urandom.randrange(0, 8, 2)
0
>>> urandom.randrange(0, 8, 2)
6

Specifying the Seed of A Random number

urandom.seed

urandom.seed(sed)

Specifies the seed of a random number, generally used in conjunction with other random number generation functions.

Parameter

  • sed - Integer type.

Example

>>> import urandom
>>> urandom.seed(20)  #Specifies the seed of a random number
>>> for i in range(0, 15): #Generates the random sequence in the range of 0–15
...     print(urandom.randint(1, 10))
...   
8
10
9
10
2
1
9
3
2
2
6
1
10
9
6

Generating A Floating Point Between start And end Randomly

urandom.uniform

urandom.uniform(start, end)

Parameter

  • start - Any type of real numbers. The minimum value in the interval.
  • end - Any type of real numbers. The maximum value in the interval.

Return Value

Floating point. A random number between start and end.

Example

>>> import urandom
>>> urandom.uniform(3, 5)
3.219261
>>> urandom.uniform(3, 5)
4.00403

Example

'''
@Author: Baron
@Date: 2020-06-22
@LastEditTime: 2020-06-22 17:16:20
@Description: example for module urandom
@FilePath: example_urandom_file.py
'''
import urandom as random
import log
import utime

'''
The following two global variables are necessary. You can modify the values of these two global variables based on project requirement
'''
PROJECT_NAME = "QuecPython_Random_example"
PROJECT_VERSION = "1.0.0"

log.basicConfig(level=log.INFO)
random_log = log.getLogger("random")


if __name__ == '__main__':
    # urandom.randint(start, end)
    # random between 1–4
    num = random.randint(1, 4)
    random_log.info(num)

    # random between 0–1
    num = random.random()
    random_log.info(num)

    # urandom.unifrom(start, end)
    # Generates a floating point between start and end
    num = random.uniform(2, 4)
    random_log.info(num)

    # urandom.randrange(start, end, step)
    # 2-bit binary,the range is [00–11] (0–3)
    num = random.getrandbits(2)
    random_log.info(num)

    # 8-bit binary,the range is [0000 0000–1111 11111] (0–255)
    num = random.getrandbits(8)
    random_log.info(num)

    # urandom.randrange(start, end, step)
    # Generates an ascending positive integer from start to end randomly
    num = random.randrange(2, 8, 2)
    random_log.info(num)

    # urandom.choice(obj)
    # Generates the number of elements in the object randomly
    num = random.choice("QuecPython")
    random_log.info(num)