小智的魔法书作业
上篇内容有两个作业,一个是seed()这个工具,一个是choice(sequence)这个工具,先说seed()工具,它是在工具包random里的,很显然使用前需要用import来引入。
seed()工具的用法是:给python产生随机数一个点,让python基于那个给定的数据产生随机数,若使用seed()工具时,不给任何数据也是可以的。看下面的例子:>>> import random as rd >>> rd.seed() >>> rd.random() 0.2333105921302806 >>> rd.seed(1) >>> rd.random() 0.13436424411240122 >>> rd.seed("a") >>> rd.random() 0.2720295377534757 >>>
看到了吧,每次seed()工具使用后,使用random()工具后产生的随机数字是不同的,我们再看下面的例子。>>> import random as rd >>> rd.seed(1) >>> rd.random() 0.13436424411240122 >>> rd.random() 0.8474337369372327 >>> rd.random() 0.763774618976614 >>> rd.seed(0) >>> rd.random() 0.8444218515250481 >>> rd.seed(1) >>> rd.random() 0.13436424411240122 >>> rd.random() 0.8474337369372327 >>> rd.random() 0.763774618976614 >>>
有没有什么发现?有相同的数字对吧,很神奇,当我们用seed(1)时,使用random()工具三次产生了一组数字,再用seed(0)改变一下,然后再用seed(1)时,三次产生的一组数字是一样的,这种现象可以理解为,每一次使用seed()工具时,python环境产生一组数据,使用random()将这组数据依次抽取出来。另一方面也说明,电脑产生的随机数是伪随机数,不是真正的随机数。
python神奇的seed()工具我们可以这样用:
当我想给你一个密码,不给别人看,那么我给你一个数字,并事先约定你用seed()工具,然后再用random工具可得到,那么其他人即使知道了我给你的数字是啥,他们也用不了,想想,是不是这样?
接下来我们看choice(sequence)工具,sequence代表一个是序列数据,这个choice()工具时从括号中的序列里随机选出一个元素。
这个"序列"能理解不?举个例子,比方说我们排队做核酸,这个排队就是一个序列,谁是第一个,谁是第二个,那么在python中属于序列的数据有哪些呢,有字符串,对,羊肉串上的羊肉也可以算做一个序列,接着说python里的内容,字符串数据、列表数据都属于"序列"数据。>>> import random as rd >>> a="abcdefg" >>> b=[1,4,2,8,5,7] >>> rd.choice(a) "d" >>> rd.choice(b) 7 >>>
这个choice()工具不难理解吧。它是针对某个序列产生的随机抽取,得到的数据是包含在那个序列里的。"d"在字符串"abcdefg"里,7在列表数据[1,4,2,8,5,7]里。
在rondom工具包内,还有一些工具,这里不一一说明了,想深入了解掌握的话,可以尝试使用dir()工具和help()工具,找出来试验着使用使用。
随机数的概念和意义呢,一般在高一的时候能接触到,定义比较绕口,这里就不写了,有兴趣的同学可以在网络上搜一搜,或者问问身边的学姐、学长。
随机数应用场景也很多,比方说考试,我们有100道题,要考10个同学,当不期望出现雷同卷时,那么可以用随机的方法在这100道题里抽取10次,每次随机10道题目,这样产生了10份题目不同的试卷,很难产生雷同的答案了。
还有诸如摇号什么的,都跟随机数有关,电脑产生的伪随机数已经很广泛地应用在各个领域,想一想还有什么地方有随机数的影子呢?
今天的内容就到这儿,看手机或平板很累,放松眼睛去吧,少玩游戏。
---------------------------------------------