Loading

random模块

random模块

此模块提供了伪随机数获取相关的方法。

  • random.random():获取[0,1.0)范围内的浮点数
>>> import random
>>> random.random()
0.8194962938698106
  • random.randint(a,b):获取[a,b]范围内的一个整数。
>>> random.randint(1,3)
1
>>> random.randint(1,3)
3

# 1,2,3都能取到
  • random.uniform(a,b):获取[a,b)范围内的浮点数,如果b为小数,b也能取到。
>>> random.uniform(1,1.00000001)
1.0000000044938595

  • random.randrange(start,stop[,step]):获取[star,stop)之间的整数,可以指定步长
print(random.randrange(1,4))
# 获取[1,4)之间的整数,可以获取到1,2,3

print(random.randrange(1,4,2))
# 可以获取到1,3
  • random.choice(seq):从非空序列seq返回一个随机元素。如果seq为空,则报错。(常用)
>>> li = [1,2,3,'a','b','c',[4,5,6]]
>>> random.choice(li)
[4, 5, 6]

# 返回结果为列表内的一个随机元素
  • random.sample(x,k):从x中随机抽取k个数据,组成列表返回。
>>> li = [1,2,3,'a','b','c',[4,5,6]]
>>> random.sample(li,2)
[[4, 5, 6], 3]


# 取列表内随机两个元素,组成列表返回
  • random.shuffle(x):混洗。将参数指定的数据中的元素打乱,参数必须是可变的数据类型,操作的是原对象,没有返回值。
>>> random.shuffle(li)
>>> li
[3, 1, 'c', [4, 5, 6], 'a', 'b', 2]
  • 应用:随机验证码。
import random
def make_code(size=6):
    res = ''
    for i in range(size):
        num = str(random.randint(0,9))	    # 随机产生一个整数
        st1 = chr(random.randint(65,90))	# 获取65-90之间的的整数,通过chr函数转换成大写字母
        st2 = chr(random.randint(97,122))	# 获取一个随机小写字母
        res += random.choice([num,st1,st2])	# 每次取得其中一个字符,与res累加
    return res

print(make_code())
posted @ 2021-01-12 21:20  吃了好多肉  阅读(71)  评论(0编辑  收藏  举报