random模块

引用自: Crossin的编程教室

random模块的作用是产生随机数

import random


random.randint(a, b)可以生成一个a到b间的随机整数,包括a和b。

a、b都必须是整数,且必须b≥a。当等于的时候,比如:

random.randint(3, 3)

的结果就永远是3


除了randint,random模块中比较常用的方法还有:

random.random()

生成一个0到1之间的随机浮点数,包括0但不包括1,也就是[0.0, 1.0)。


random.uniform(a, b)

生成a、b之间的随机浮点数。不过与randint不同的是,a、b无需是整数,也不用考虑大小。

random.uniform(1.5, 3)

random.uniform(3, 1.5)

这两种参数都是可行的。

random.uniform(1.5, 1.5)永远得到1.5。


random.choice(seq)

从序列中随机选取一个元素。seq需要是一个序列,比如list、元组、字符串。

#    choice不能set集合,可以dict。

random.choice([1, 2, 3, 5, 8, 13]) #list

random.choice('hello') #字符串

random.choice(['hello', 'world']) #字符串组成的list

random.choice((1, 2, 3)) #元组

都是可行的用法。


random.randrange(start, stop, step)

生成一个从start到stop(不包括stop),间隔为step的一个随机数。start、stop、step都要为整数,且start

比如:

random.randrange(1, 9, 2)

就是从[1, 3, 5, 7]中随机选取一个。

start和step都可以不提供参数,默认是从0开始,间隔为1。但如果需要指定step,则必须指定start。

random.randrange(4) #[0, 1, 2, 3]

random.randrange(1, 4) #[1, 2, 3]

random.randrange(start, stop, step)其实在效果上等同于

random.choice(range(start, stop, step))


random.sample(population, k)

#    sample不能dict,可以set

从population序列中,随机获取k个元素,生成一个新序列。sample不改变原来序列。

random.shuffle(x)

把序列x中的元素顺序打乱。shuffle直接改变原有的序列。


以上是random中常见的几个方法。如果你在程序中需要其中某一个方法,也可以这样写:

from random import randint

randint(1, 10)

另外,在随机数中有个seed的概念,需要一个真实的随机数,比如此刻的时间、鼠标的位置等等,以此为基础产生伪随机数。在python中,默认用系统时间作为seed。你也可以手动调用random.seed(x)来指定seed。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 近来在学习Celery包的时候发现自己对于python中的random()模块真是知之甚少。 random.ran...
    东皇Amrzs阅读 740评论 1 4
  • Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。 random.r...
    随风化作雨阅读 422评论 0 0
  • 概述 该模块为多种分布实现伪随机数生成器。 对于整数,在某范围内均匀选择。 对于序列,对随机元素均匀选择,通过产生...
    hao555sky阅读 659评论 0 0
  • 随机数是由程序随即产生的数字,常见的图片验证码,12306的图片验证等,这节我们来认识Python中的随机数模块。...
    老黄爱Python阅读 7,149评论 0 5
  • 代码开始出加入import random导入random模块 1、random.random random.ran...
    marshb阅读 3,644评论 0 1