知识点:random模块的常用函数
导入模块并更名为r
import random as r
①生成0到1之间的随机小数
import random as r num = r.random() #产生[0,1)的随机小数print(f"随机小数: {num}") # 输出: 0.3745821694736215 (每次运行结果不同)
②uniform(a, b) 生成[a, b] 或 [a, b) 之间的随机浮点数
import random as r num = r.uniform(10, 20) #生成10到20之间的随机小数print(f"r.uniform(10, 20): {num}") # 输出: 15.73294810572418 (每次运行结果不同)
③randint(a, b) 生成 [a, b] 之间的随机整数
import random as r # 生成1到10之间的随机整数(包含1和10)num = r.randint(1, 10) print(f"r.randint(1, 10): {num}") # 输出: 7 (每次运行结果不同,范围1-10)
④choice()从序列的元素中随机挑选一个元素
import random as r classname = ['17班','18班','19班','20班','21班','22班','23班','24班'] # 定义班级列表c = r.choice(classname) # 随机选择一个班级print(f"随机选择的班级: {c}") # 输出: 21班 (每次运行结果不同)
⑤sample()从序列的元素中随机挑选K个元素(不重复)
import random as r k = ['17班','18班','19班','20班','21班','22班','23班','24班'] # 定义班级列表c = r.sample(k,3) # 随机选择3个不重复的班级print(f"随机选择的3个班级: {c}") # 输出: ['19班', '24班', '17班'] (每次运行结果不同)
⑥shuffle()将序列中的所有元素随机排序(打乱顺序)
import random as r k = ['17班','18班','19班','20班','21班','22班','23班','24班'] #定义班级列表print(f"打乱前的顺序: {k}") #输出: ['17班', '18班', '19班', '20班', '21班', '22班', '23班', '24班']r.shuffle(k) #打乱列表顺序print("打乱后的班级顺序:")for x in k: print(x,end=' ') #输出 逐个输出打乱后的班级,输出: 21班 18班 24班 17班 20班 23班 19班 22班 (每次运行结果不同)
知识拓展:random模块的其他函数
⑦ randrange(start, stop[, step]) - 从指定范围内按指定步长获取随机整数
⑧ getrandbits(k) - 生成一个具有k位随机二进制数的整数
⑨ seed(a=None) - 初始化随机数生成器(设置种子,使随机结果可重复)
⑩ choices(population, weights=None, cum_weights=None, k=1) - 从序列中按权重随机选择k个元素(可重复)
⑪ triangular(low, high, mode) - 生成三角形分布的随机数
⑫ betavariate(alpha, beta) - 生成贝塔分布的随机数(0-1之间)
⑬ expovariate(lambd) - 生成指数分布的随机数
⑭ gammavariate(alpha, beta) - 生成伽马分布的随机数
⑮ gauss(mu, sigma) - 生成高斯分布(正态分布)的随机数
⑯ lognormvariate(mu, sigma) - 生成对数正态分布的随机数
⑰ normalvariate(mu, sigma) - 生成正态分布的随机数(与gauss类似)
⑱ vonmisesvariate(mu, kappa) - 生成冯·米塞斯分布的随机数(用于圆形数据)
⑲ paretovariate(alpha) - 生成帕累托分布的随机数
⑳ weibullvariate(alpha, beta) - 生成威布尔分布的随机数