Python模块 random

python中的random模块是内建(built-in),用来生成随机数的,常用的函数如下:
使用交互模式举例子

Python 2.7.12 (default, Dec 4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

import random

#查看random模块下的函数

dir(random)
[‘BPF’, ‘LOG4’, ‘NV_MAGICCONST’, ‘RECIP_BPF’, ‘Random’, ‘SG_MAGICCONST’, ‘SystemRandom’, ‘TWOPI’, ‘WichmannHill’, ‘_BuiltinMethodType’, ‘_MethodType’, ‘all’, ‘builtins’, ‘doc’, ‘file’, ‘name’, ‘package’, ‘_acos’, ‘_ceil’, ‘_cos’, ‘_e’, ‘_exp’, ‘_hashlib’, ‘_hexlify’, ‘_inst’, ‘_log’, ‘_pi’, ‘_random’, ‘_sin’, ‘_sqrt’, ‘_test’, ‘_test_generator’, ‘_urandom’, ‘_warn’, ‘betavariate’, ‘choice’, ‘division’, ‘expovariate’, ‘gammavariate’, ‘gauss’, ‘getrandbits’, ‘getstate’, ‘jumpahead’, ‘lognormvariate’, ‘normalvariate’, ‘paretovariate’, ‘randint’, ‘random’, ‘randrange’, ‘sample’, ‘seed’, ‘setstate’, ‘shuffle’, ‘triangular’, ‘uniform’, ‘vonmisesvariate’, ‘weibullvariate’]

生成1至10(不包含10)的一个随机数,整型int

random.randint(1,10)
10

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

random.random()
0.45351869971251213
random.random()
0.22462490577606353

random.uniform(a, b)生成a至b之间的随机浮点数

与randint不同的是,a、b可以不是整数,也不用考虑大小

random.uniform(1, 5)
4.253616977571431
random.uniform(3.5, 5.9)
4.112165661774612
random.uniform(5.9, 3.5)
4.710955790979342

random.choice(seq) 从序列中随机选取一个元素

seq需要时一个序列,例如list、元组、字符串

random.choice([1, 2, 3, 4])
1

random.choice([‘g’, ‘k’, ‘o’])
‘g’
random.choice([‘hello’, ‘hi’, ‘say’])
‘say’

random.randrange(start, stop, step)生成一个从star到stop(不包括stop)

间隔为step的随机整数,start、stop、step都要为整数,且start>> random.randrange(0, 20, 2)

0

random.randrange(0, 20, 2)
2
random.randrange(0, 20, 2)
14
random.randrange(0, 20, 2)
16
random.randrange(0, 20, 2)
10
random.randrange(0, 20, 2)
2

random.sample(p, k)从p序列获取k个元素,生成一个新的序列

sample不改变原来的序列

a = [1, 2, 3, 4, 5, 6]
random.sample(a, 3)
[3, 4, 5]
random.sample(a, 4)
[1, 6, 4, 2]
a
[1, 2, 3, 4, 5, 6]

random.shuffle(x)把序列x中的元素顺序打乱,shuffle直接改变原有的序列

a = [1, 2, 3, 4, 5]
random.shuffle(a)
a
[4, 1, 5, 3, 2]

该函数没有返回值,不能直接print

print(random.shuffle(a))
None

random.seed(a=None, version=2)初始化随机数生成器

初始化伪随机数生成器。如果未提供a或者a=None

#则使用系统时间为种子。如果a是一个整数,则作为种子。

random.seed(1)
random.random()
0.13436424411240122
random.random()
0.8474337369372327
random.random()
0.763774618976614

感受一下

random.seed(1)
random.random()
0.13436424411240122
random.random()
0.8474337369372327
random.random()
0.763774618976614

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q shen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值