Python基础之random库
目录1、random库介绍2、常用函数3、不常用函数4、案例random模块实现了各种分布的伪随机数生成器,为什么称为伪随机数:即使人类使用算法等方式,以一个基准(也被叫做种子,最常用的就是时间戳)来构造一系列数字,这些数字的特控符合人们所理解的随机数。但因为是通过算法得到的,所以一旦算法和种子都确定,那么产生的随机数序列也是确定的,所以叫伪随机数random.seed(a)设置初始化随机种子,可
目录
1、random库介绍
random模块实现了各种分布的伪随机数生成器,为什么称为伪随机数:即使人类使用算法等方式,以一个基准(也被叫做种子,最常用的就是时间戳)来构造一系列数字,这些数字的特控符合人们所理解的随机数。但因为是通过算法得到的,所以一旦算法和种子都确定,那么产生的随机数序列也是确定的,所以叫伪随机数
2、常用函数
random.seed(a)
设置初始化随机种子,可输出相同随机数序列;a取整数或浮点数,不设置时默认以系统时间为种子。
import random
print("没有设置种子时")
for i in range(5):
ret = random.randint(1, 10)
print(ret, end=" ")
print()
print("设置种子时")
random.seed(1)
for i in range(5):
ret = random.randint(1, 10)
print(ret, end=" ")
没有显示设定种子时,每次输出的随机数都是不一样的;显示设置种子时,每次输出的随机数都是一样的。
random.random() # 用于生成一个0.0到1.0的随机数
print(random.random())
random.uniform(a, b) # 生成一个[a, b]之间的随机小数;a,b取整数或浮点数
print(random.uniform(10, 20))
random.randint(a, b) # 生成一个[a, b]之间随机整数
print(random.randint(10, 20))
random.randrange(start, stop, [step])
# 生成一个[start, stop]之间以step步数的随机整数:start,stop,step取整数,step不设置时默认值为1
print(random.randrange(1, 100)) # 随机生成1-100之间的整数
print(random.randrange(1, 100, 2)) # 随机生成1-100之间奇数
print(random.randrange(2, 100, 2)) # 随机生成1-100之间偶数
random.getrandbits(k) # 生成一个占内存k位以内的随机整数;k取长度的整数值
print(random.getrandbits(10)) # 生成一个内存占k位以内的随机数;k取长度的整数值
random.choice(seq) # 从序列类型seq中随机返回一个元素;seq取序列类型:如字符串、列表、元组
print(random.choice([1, '10', 3, 5, 7, 1001]))
random.shuffle(seq)
将序列类型中元素随机排序,返回打乱后序列,seq被改变(改变原序列),shuffle为洗牌之意;seq取序列类型:如字符串,列表,元组
list = ['a', 'b', 'c', 'd', 'e', 'f']
random.shuffle(list)
print(list)
random.sample(pop, k)
从pop中选取k个元素,以列表类型返回(不改变原列表);pop取序列类型,k取整数:代表选取个数
print(random.sample(list, 3))
3、不常用函数
random.getstate() # 等等,遇到再说吧
4、案例
import random
import string
def get_random_string(length):
# 随机生成字母和数字的位数
num_count = random.randint(1, length-1)
letter_count = length-num_count
# 随机抽样生成数字序列
num_list = [random.choice(string.digits) for _ in range(num_count)]
# 随机抽样生成字母序列
letter_list = [random.choice(string.ascii_letters) for _ in range(letter_count)]
# 合并字母和数字
all_list = num_list + letter_list
# 乱序
random.shuffle(all_list)
result = "".join(i for i in all_list)
return result
# 生成10位的密码
password1 = get_random_string(10)
print(password1)
更多推荐
所有评论(0)