<返回更多

Python基础编程——标准库之random模块

2021-08-16    Python编程爱好者
加入收藏

random模块是Python/ target=_blank class=infotextkey>Python中一个用于生成随机数的模块,其中包含了生成伪代随机数的函数,有助于编写模拟程序或者生成随机输出的程序。需要注意的是这些数虽然看起来好像是完全随机的,但是他们背后的系统是可以预测的。如果要用于加密或者完全相关的功能,则应该使用os模块中的urandom。

random模块

random模块中一些重要的函数如下表所示:

函数

描述

random()

返回一个0~1(含)的随机实数

getrandbits(n)

以长整数的方式返回n个随机的二进制位

uniform(a, b)

返回一个a~b(含)的随机实数

randrange([start], stop, [step])

从range(start, stop, step)中随机地选择一个数

choice(seq)

从序列seq中随机地选择一个元素

shuffle(seq[, random])

就地打乱序列seq

sample(seq, n)

从序列seq中随机地选择n个值不同的元素

random.random():random模块中最基本的函数之一,也是最常用的函数,它返回一个0~1(包含)的伪随机数。

random.getrandbits():以一个整数的方式返回指定数量的二进制位。

random.uniform():它返回一个a~b(含)的随机(均匀分布的)实数。例如,如果你需要一个随机角度,可使用uniform(0, 360)。

random.randrange():是生成随机整数的标准函数。为指定这个随机整数所在的范围,你可像调用range那样给这个函数提供参数。

random.choice():从给定的序列中随机地选择一个元素。

random.shuffle():随机地打乱一个可变序列中的元素,并确保每种可能的排列顺序出现的概率相同。

random.sample():从给定序列中随机(均匀)地选择指定数量的元素,并确保所选择元素的值各不相同。

上面关于介绍的random模块中的函数的实例用法如下my_random.py程序所示:

my_random.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import random

# random()函数,返回一个0~1(包含)的随机实数
rand_num = random.random()
print('rand_num = {}'.format(rand_num))

rand_num = random.random()
print('rand_num = {}'.format(rand_num))

# getrandbits()函数
print(random.getrandbits(10))

# uniform()函数,返回一个a~b(包含)的随机实数
uni_rand_num = random.uniform(1, 10)
print('uni_rand_num = {}'.format(uni_rand_num))

# randrange()函数,从指定的范围中随机选择一个数。
rand_range_num = random.randrange(1, 10)
print('rand_range_num = {}'.format(rand_range_num))

# choice()函数,从给定的序列中随机选择一个数,与randrange()函数类似。
sequence = list(range(1, 10))
print('sequence = {}'.format(sequence))
rand_choice = random.choice(sequence)
print('rand_choice = {}'.format(rand_choice))

# shuffle()函数,随机打乱给定的可变序列的元素索引位置
sequence = list(range(1, 20))
print('sequence = {}'.format(sequence))
random.shuffle(sequence)
print('sequence = {}'.format(sequence))

# sample()函数,从给定的序列中随机选择指定数量的元素,各个元素只不同
sequence = list(range(1, 36))
print('sequence = {}'.format(sequence))
samp_rand_nums = random.sample(sequence, 5)
print('samp_rand_nums = {}'.format(samp_rand_nums))

程序执行结果如下所示:
rand_num = 0.4080611438222771
rand_num = 0.4686116506011688
911
uni_rand_num = 8.889564467939781
rand_range_num = 5
sequence = [1, 2, 3, 4, 5, 6, 7, 8, 9]
rand_choice = 8
sequence = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
sequence = [2, 17, 10, 19, 12, 4, 9, 14, 7, 5, 3, 11, 6, 18, 8, 15, 16, 1, 13]
sequence = [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]
samp_rand_nums = [27, 30, 1, 17, 7]
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>