random库概述:
random库是使用随机数的Python标准库
伪随机数:采用梅森旋转算法生成的随机序列中元素
import random
基本随机数函数:seed(),random()
扩展随机数函数:randint(),randrange(),uniform(),choice(),shuffle(),getrandbits(),
函数 | 功能 | 参数 |
---|---|---|
random.seed([x]) | 改变随机数生成器的种子 | x:种子,整型或浮点型都行。默认为当前系统时间 |
random.random() | 返回[0,1)内一个随机浮点数 | null |
random.randint(m,n) | 返回[m,n)中的一个随机整数 | m,n必须是整数 |
random.randrange(m,n[,k]) | 返回[m,n)中以k为步长的一个随机整数 | m,n,k必须是整数 k默认为1 |
random.getrandbits(k) | 返回一个可以用k位二进制的整数 | k为整数 |
random.uniform(m,n) | 返回[m,n)中的一个随机浮点数 | m,n可以是整型或是浮点型 |
random.choice(seq) | 返回一个列表、元组或字符串的随机项。 | 字符串、列表或元组 |
random.sample(seq,k) | 返回k个列表、元组或字符串的随机项。 | 字符串、列表或元组 |
random.shuffle(list) | 将序列的所有元素随机排序。无返回值 | 列表 |
你不必特别去设定seed,Python会帮你选择seed。默认种子x为当前系统时间,所以每次的结果才不同
import random
print(random.random())
#0.9159448117309811
print(random.random())
#0.47405353654712656
可以在调用其他随机模块函数之前调用此函数:生成同样的结果
import random
random.seed(3)
print(random.random())
#0.18674172875460915
random.seed(3)
print(random.random())
#0.18674172875460915
print(random.random())
#0.048822131669426394
# 随机选取0到100间的偶数:
print(random.randrange(0, 101, 2))
#16
import random
print(random.getrandbits(2))
#2位二进制:00(0),01(1),10(2),11(3)
#3
print(random.choice("string"))
#r
print(random.choice([1,2,3,4]))
#1
print(random.choice((1,2,3,4)))
#2
应用:
#随机选取字符串:
print(random.choice(['剪刀', '石头', '布']))
#布
print(random.sample('12345',3))
#['3', '1', '4']
print(random.sample([1,2,3,4],3))
#[3, 4, 2]
print(random.sample((1,2,3,4),3))
#[4, 3, 1]
应用
import random
# 打乱排序
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
random.shuffle(items)
print(items)
#[7, 5, 6, 9, 4, 1, 3, 2, 0, 8]
参考:https://www.runoob.com/python/func-number-random.html