|
文章目录主要功能用法示例代码生成随机整数和浮点数从序列中随机选择元素随机打乱序列模拟随机变量分布正态分布指数分布其他分布使用`random.seed()`设置随机种子使用`random`模块进行简单的随机密码生成Python的random模块提供了各种用于生成随机数的函数。这个模块在需要随机选择元素、打乱序列、模拟概率分布等场景时非常有用。下面我将详细介绍random模块的一些主要功能、用法和常见用法,并给出相应的示例代码。主要功能基本随机数生成:生成指定范围内的随机整数、随机浮点数等。随机选择:从序列中随机选择一个或多个元素。随机打乱:随机打乱序列中的元素顺序。随机变量:模拟常见的随机变量分布,如正态分布、指数分布等。用法以下是一些常用的函数及其用法:random():生成一个[0.0,1.0)之间的随机浮点数。randint(a,b):生成一个[a,b]之间的随机整数。randrange([start,]stop[,step]):生成一个[start,stop)之间以step为步长的随机整数。choice(seq):从非空序列seq中随机选择一个元素。shuffle(list):将list中的元素随机打乱。sample(population,k):从population中随机选择k个不重复的元素。uniform(a,b):生成一个[a,b]之间的随机浮点数。normalvariate(mu,sigma):生成一个符合正态分布的随机数,mu是均值,sigma是标准差。示例代码生成随机整数和浮点数importrandom#生成0到10之间的随机整数(包括0和10)print(random.randint(0,10))#生成1到10之间(不包括10)的随机整数print(random.randrange(1,10))#生成0到1之间的随机浮点数(不包括1)print(random.random())#生成1到3之间的随机浮点数print(random.uniform(1,3))12345678910111213'运行运行运行结果:从序列中随机选择元素#从列表中随机选择一个元素my_list=[1,2,3,4,5]print(random.choice(my_list))#从列表中随机选择3个不重复的元素print(random.sample(my_list,3))123456运行结果:随机打乱序列#打乱列表中的元素顺序random.shuffle(my_list)print(my_list)123运行结果:模拟随机变量分布正态分布#生成一个符合正态分布的随机数,均值为0,标准差为1print(random.normalvariate(0,1))12运行结果:指数分布虽然random模块没有直接提供指数分布的函数,但你可以使用expovariate函数从random的expovariate模块中导入:fromrandomimportexpovariate#生成一个符合指数分布的随机数,λ(lambda)是分布率参数(平均到达率是λ的倒数)print(expovariate(1.0))#λ=1.01234'运行运行但请注意,expovariate是直接在random模块中定义的,不需要额外导入。其他分布对于其他更复杂的分布,你可能需要使用numpy库,它提供了更多的统计函数和随机变量生成器。使用random.seed()设置随机种子设置随机种子可以确保每次运行代码时生成的随机数序列是相同的,这在需要可重复实验的情况下很有用。importrandom#设置随机种子random.seed(1)#现在,每次使用相同的种子调用random函数,都会得到相同的结果print(random.randint(0,10))#假设输出为5(实际输出可能因版本而异)print(random.randint(0,10))#假设输出为某个特定数字(与上次不同,但因为是同一种子,所以可重复)12345678910'运行运行运行结果:使用random模块进行简单的随机密码生成importrandomimportstringdefgenerate_password(length=10):#选择字母和数字的集合characters=string.ascii_letters+string.digits#使用random.choices函数(注意不是choice,它允许重复)#并指定k=length以生成指定长度的密码return''.join(random.choices(characters,k=length))print(generate_password(15))#生成一个15位的随机密码1234567891011'运行运行运行结果:
|
|