这里有新鲜出炉的 Python3 官方中文指南,程序狗速度看过来!
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
这篇文章主要介绍了 Python 编程实现生成特定范围内不重复多个随机数的 2 种方法, 涉及 Python 基于 random 生成随机数的常见操作技巧, 需要的朋友可以参考下
本文实例讲述了 Python 编程实现生成特定范围内不重复多个随机数的 2 种方法。分享给大家供大家参考,具体如下:
在近期进行的一个实验中,需要将数据按一定比例随机分割为两个部分。这一问题的核心其实就是产生不重复随机数的问题。首先想到的递归的方法,然后才发现 Python 中居然已经提供了此方法的函数,可以直接使用。具体代码如下:
- #生成某区间内不重复的N个随机数的方法import random;#1、利用递归生成resultList = [];#用于存放结果的List A = 1;#最小随机数B = 10#最大随机数COUNT = 10#生成随机数的递归数学,参数counter表示当前准备要生成的第几个有效随机数def generateRand(counter) : tempInt = random.randint(A, B);#生成一个范围内的临时随机数,
- if (counter <= COUNT) : #先看随机数的总个数是不是够了,如果不够
- if (tempInt not in resultList) : #再检查当前已经生成的临时随机数是不是已经存在,如果不存在resultList.append(tempInt);#则将其追加到结果List中counter += 1;#然后将表示有效结果的个数加1.请注意这里,如果临时随机数已经存在,则此
- if不成立,那么将直接执行16行,counter不用再加1 generateRand(counter);#不管上面的
- if是否成立,都要递归。如果上面的临时随机数有效,则这里的conter会加1,如果上面的临时随机数已经存在了,则需要重新再生成一次随机数,
- counter不能变化generateRand(1);#调用递归函数,并给当前要生成的有效随机数的个序号置为1,因为要从第一个开始嘛print(resultList)#打印结果#2、利用Python中的randomw.sample()函数实现resultList = random.sample(range(A, B + 1), COUNT);#sample(x, y)函数的作用是从序列x中,随机选择y个不重复的元素。上面的方法写了那么多,其实Python一句话就完成了。print(resultList)#打印结果
结果:
希望本文所述对大家 Python 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0720/334322.html