您好,登录后才能下订单哦!
这篇文章主要讲解了“python random模块高频使用方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python random模块高频使用方法有哪些”吧!
为了方便大家理解和记忆,将方法进行了归类:
整数用函数
random.randrange(stop)随机返回[0, stop-1]之间的整数
random.randrange(start, stop, step)随机返回[start, stop-1]之间的整数。step是递增计数,列一个公式你就明白了:(随机生成的值—start)%step=0
random.randint(start, stop)随机返回[start, stop]之间的整数
random.getrandbits(bits)用于随机对应bits位的整数随机返回[0, 2的bits位-1]之间的整数。
最后需要注意一点:上面的几个方法也是可以随机返回负数的,只需要参数传承负数就可以了。下面举个例子:
# 0-2之间的整数 print(random.randrange(3)) # 1-299之间的整数,增长基数是5 print(random.randrange(1, 300, 5)) # 1-20之间的整数 print(random.randint(1, 20)) # -3到0之间的负数 print(random.randint(-3, 0)) # -3到-1之间的负数 print(random.randrange(-3, 0)) # 返回1~2-1之间的数字 print(random.randrange(1)) # 返回1~2的32次方-1之间的数字 print(random.getrandbits(32)) ## 返回值 0 1 17 0 -1 0 3150567570
浮点型函数
random.random()随机返回[0,1)之间的浮点型数字
random.uniform(a, b)随机返回[a,b)之间的浮点数字
其实上面的两个方法也是符合数学随机分布模式的,为了方便大家理解,我这里单独列出来(区别于下面的 数学分布模式),方便大家在随机生成浮点型数字时,能少些犹豫。
# 1. 生成一个0-1之间随机浮点数print(random.random())# 2. 生成一个a-b之间的随机浮点数print(random.uniform(10, 500))print(random.uniform(40, 10)) # 返回值 0.7833926665736892 150.2805875943869 39.88236257691508
序列函数
顾名思义,序列函数随机的对象是列表。
random.choice(list)从list随机返回一个元素。
random.choices(list, weights,k)相当于random.choice()的升级版本。weights是权重,针对list的每个元素都设置权重,来改变随机的概率。k是返回几个元素。需要注意这个方法返回的是列表。
random.sample( population, k )3.6新增功能,用于从population列表中,返回随机无重复的抽样。前面提过抽奖,其实如果你想做一个抽奖系统,可以用这个方法改造。
random.shuffle(list)将list列表中的元素随机打乱。
对应的例子如下:
# 从给定的序列中随机选择一个元素 print(random.choice([1, 2, 3, 4, 5])) # random.choice的升级版本,还可以指定某个元素对应的权重 print(random.choices([1, 2, 3, 4, 5], [10, 15, 45, 50, 60])) # 打乱某个序列,从python3.6新增的方法 list_test = [2, 3, 4, 5, 6] random.shuffle(list_test) print(list_test) # 取样,从某个列表中,随机选择若干个元素 print(random.sample([1, 2, 3, 4, 5, 6, 7], k=3)) # 返回值 3 [5] [6, 3, 4, 2, 5] [6, 1, 7]
控制random的行为
random.seed( a=None, version=2 )设置random的种子值,怎么理解种子值呢?大家就想一句话就好了:“种瓜得瓜种豆得豆”,所以一样的种子值,那么种出来的结果是一样的。假如现在随机两次,在调用random随机生成数据前,将random.seed设置成一样的值,则随机生成的值是一样的。
random.getstate()这个很简单,就是返回random生成器当前的状态的。
random.setstate(state)这个用于设置random的状态setstate和getstate方法结合起来使用,可以用于恢复random的状态。
对应的例子如下:
# 验证seed random.seed(1) print(random.randrange(1000)) random.seed(1) print(random.randrange(1000)) # 验证random的状态 state = random.getstate() print(random.randrange(1000)) print(random.randrange(1000)) random.setstate(state) print(random.randrange(1000)) # 返回结果 137 137 582 867 582
数学分布模式
下面列的这些方法都是跟数学分布的概念有关系,说实话大学里学的相关的东西,都还给老师了,我查了资料想去理解不同的数学分布的知识,但是理解起来有些吃力,不过其实对我们使用的人来说,只需要理解其能根据一定规则,随机返回浮点数就可以了。
random.triangular(low, high, mode) 以三角分布的概率分布返回随机数
random.betavariate(alpha, beta) 以beta分布的概率分布返回0到1之间的随机数
random.expovariate() 以指数分布返回随机数
random.gammavariate(alpha, beta) 以gamma分布的概率分布返回随机数
random.gauss(mu, sigma) 以高斯分布的概率分布返回随机数
random.lognormvariate(mu, sigma) 以对数正态分布的概率分布返回随机数
random.normalvariate(mu, sigma) 和高斯分布类似
random.vonmisesvariate(mu, kappa) 以von Mises分布的概率分布返回随机数
random.paretovariate(alpha) 以Pareto( 帕累托)分布的概率分布返回随机数
random.weibullvariate(alpha, beta) 以Weibull(威尔布)分布的概率分布返回随机数
其实大家也不需要完全记住上面的方法,碰到具体的使用场景,知道有对应的方法,能查看文档找到就可以了。
感谢各位的阅读,以上就是“python random模块高频使用方法有哪些”的内容了,经过本文的学习后,相信大家对python random模块高频使用方法有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。