random模块是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.4080611438222771rand_num = 0.4686116506011688911uni_rand_num = 8.889564467939781rand_range_num = 5sequence = [1, 2, 3, 4, 5, 6, 7, 8, 9]rand_choice = 8sequence = [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]【Python基础编程——标准库之random模块】
推荐阅读
- 功能小项 编程心得之封装函数
- 编程之为什么要写框架
- C++ STL算法篇@@
- Python-快速添加headers请求头
- 用于数据科学的六种必备Python工具
- 月薪两万程序员应该知道的编程模型
- Python 增强视频画质,就这么做
- Python 图像处理
- Python中的条件选择和循环语句
- 想学好编程,别背代码
