目录 前言 1. 常用函数 2. 不常用函数 3. 使用示例 3.1 生成随机密码 前言 random模块实现了各种分布的伪随机数生成器。 伪随机数: 人类使用算法等方式,以一个基准(也被称为种子,常
目录
- 前言
- 1. 常用函数
- 2. 不常用函数
- 3. 使用示例
- 3.1 生成随机密码
前言
random模块实现了各种分布的伪随机数生成器。
伪随机数:人类使用算法等方式,以一个基准(也被称为种子,常用的是时间戳)来构造一系列数字,这些数字的特性符合人们所理解的随机数。
一旦算法和种子都确定,产生的随机数序列也是确定的,所以称为伪随机数。
1. 常用函数
random.seed(a)
random.random()
random.uniform(a,b)
random.randint(a,b)
random.randrange(start,stop[,step])
random.getrandbits(k)(seq)
如果设置k=2,那么可取的数就在 (0,1,2,3) 之间随机取
random.choice(seq)
random.shuffle(seq)
random.sample(pop,k)
常用函数使用方法:
import random print('no seed') for i in range(5): ret = random.randint(1,10) print(ret) print() print(random.random()) print(random.uniform(1,10)) print(random.randint(0,10)) print(random.randrange(1,10,5)) print(random.getrandbits(2)) print(random.choice([1,3,5,7,9])) l=[1,2,3,4] random.shuffle(l) print(l) print(random.sample(l,2)) print('*'*40) print('has seed') random.seed(1) for i in range(5): ret = random.randint(1,10) print(ret) print(random.random()) print(random.uniform(1,10)) print(random.randint(0,10)) print(random.randrange(1,10,5)) print(random.getrandbits(2)) print(random.choice([1,3,5,7,9])) l=[1,2,3,4] random.shuffle(l) print(l) print(random.sample(l,2))
显示结果:
no seed
4
7
5
5
1
()
0.730177834774
4.05987712407
8
6
0
7
[1, 4, 2, 3]
[4, 1]
****************************************
has seed
2
9
8
3
5
0.449491064789
6.8643367545
8
1
0
9
[1, 3, 4, 2]
[4, 1]
2. 不常用函数
random模块中不常用的函数有如下:
random.getstate()
random.setstate(state)
random.betavariate(alpha,beta)
random.expovariate(lambd)
random.gammavariate(alpha,beta)
random.gauss(mu,sigma)
random.normalvariate(mu,sigma)
random.paretovariate(alpha)
random.weibullvariate(alpha,beta)
3. 使用示例
3.1 生成随机密码
生成的密码包含数字和字母,可以指定密码的位数。
# -*- coding: utf-8 -*- """ @File : 随机生成密码.py @E-Mail : zoya.zh@qq.com """ import random import string def get_random_passwd(length:int): ''' 生成随机密码h :param length: 密码的长度 :return: 生成的随机密码 ''' num_count = random.randint(1,length-1) # 密码中数字的个数 char_count = length - num_count # 密码中字母的个数 num_list = [random.choice(string.digits) for i in range(num_count)] # 随机生成的数字 char_list = [random.choice(string.ascii_letters) for i in range(char_count)] # 随机生成的字母 psw = num_list + char_list # 随机排列序列中的字符 random.shuffle(psw) # 把得到的密码转成字符串的格式返回 result = ''.join(psw) return result if __name__ == '__main__': psw = get_random_passwd(8) print(psw)
测试时每次都会生成不同的密码
8oG4GW76
261Ro923
到此这篇关于python标准库random模块处理随机数的文章就介绍到这了,更多相关python random模块 内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!