背景介绍
马上年底了,一些公司开始调整,开始裁员;为了预防波及到自身,我们要提前做好准备。
- 做到人无我有,人有我精
- 积极寻找解决方案,给自己留好退路
- 各位测试同仁,可否有好的副业?不想再做测试了,难难难!
解决方案
- 从今天开始我们开始整理面试题,开始刷题【python】【测试】相关。
面试题01:如何使用random
模块生成随机数、实现随机乱序和随机抽样?
点评:送人头的题目,因为Python标准库中的常用模块应该是Python开发者都比较熟悉的内容,这个问题回如果答不上来,整个面试基本也就砸锅了。
python random模块解析
- random.random()函数可以生成[0.0, 1.0)之间的随机浮点数。
- random.uniform(a, b)函数可以生成[a, b]或[b, a]之间的随机浮点数。
- random.randint(a, b)函数可以生成[a, b]或[b, a]之间的随机整数。
- random.shuffle(x)函数可以实现对序列x的原地随机乱序。
- random.choice(seq)函数可以从非空序列中取出一个随机元素。
- random.choices(population, weights=None, *, cum_weights=None, k=1)
函数可以从总体中随机抽取(有放回抽样)出容量为k的样本并返回样本的列表,可以通过参数指定个体的权重,如果没有指定权重,个体被选中的概率均等。
- random.sample(population, k)
函数可以从总体中随机抽取(无放回抽样)出容量为k的样本并返回样本的列表。
进阶
random模块提供的函数除了生成均匀分布的随机数外,还可以生成其他分布的随机数,例如random.gauss(mu, sigma)函数可以生成高斯分布(正态分布)的随机数;random.paretovariate(alpha)函数会生成帕累托分布的随机数;random.gammavariate(alpha, beta)函数会生成伽马分布的随机数。
举例
来自菜鸟教程:https://www.runoob.com/python/func-number-random.html
#!/usr/bin/python # -*- coding: UTF-8 -*- import random import string # 随机整数: print random.randint(1,50) # 随机选取0到100间的偶数: print random.randrange(0, 101, 2) # 随机浮点数: print random.random() print random.uniform(1, 10) # 随机字符: print random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()') # 多个字符中生成指定数量的随机字符: print random.sample('zyxwvutsrqponmlkjihgfedcba',5) # 从a-zA-Z0-9生成指定数量的随机字符: ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8)) print ran_str # 多个字符中选取指定数量的字符组成新字符串: print ''.join(random.sample(['z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'], 5)) # 随机选取字符串: print random.choice(['剪刀', '石头', '布']) # 打乱排序 items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] print random.shuffle(items)
结尾
- 好好复习,明天见!