导航

随机模块_random

Posted on 2019-04-01 22:12  菜花教授  阅读(113)  评论(0编辑  收藏  举报

random.seed(a)

设置种子, 若不穿参数, 就使用系统时间
种子相同, 每次生成的随机序列也相同
计算机生成的随机数都是伪随机数, 通过算法的出

li = []

# 设置种子
random.seed(a=5)
for i in range(10):
    li.append(random.randint(1, 10))
print(li)
# [10, 5, 6, 9, 1, 8, 4, 1, 3, 2]

li = []

# 设置种子
random.seed(a=5)
for i in range(10):
    li.append(random.randint(1, 10))
print(li)
# [10, 5, 6, 9, 1, 8, 4, 1, 3, 2]

# 结果随机数都是一样

 

random

随机获得0~1的小数

print(random.random())

randrange(start, end, setp)

随机获取指定范围内的整数

print(random.randrange(1, 10, 2))

randint(start, end)

随机获得指定范围内的整数, 能取到end

print(random.randint(1, 10))

uniform(start, end)

随机获得指定范围内的小数

1 # return a + (b-a) * self.random()
2 
3 # 1 <= x < 2
4 print(random.uniform(1, 2))
5 # -2 < x <= 5
6 print(random.uniform(5, -2))

choice

随机获得容器中的一个值

print(random.choice([1, 2, 4]))

sample

随机获得容器中的多个值, 返回列表

print(random.sample([1, 2, 4, 6, 8, 0], 3))

shuffle

随机打乱列表中的元素, 改变原列表

li = [1, 2, 4, 6]
random.shuffle(li)
print(li)

验证码

def yanzhengma():
   strvar = ''
   for i in range(5):
      # 获取小写字母, 通过ascii
      schr = chr(random.randrange(65, 91))
      # 获取大写字母
      bchr = chr(random.randrange(97, 123))
      # 获取数字0~9
      num = str(random.randrange(10))

      strvar += random.choice([schr, bchr, num])