python随机生成11位手机号码,Python随机生成一个数
如何产生一亿个手机号码?Python中生成随机数的22种方法,随机功能太强了_程序员后期枫叶的技术博客_博客
Yyds干货库存
大家好,这是Python程序员丰丸。
案例分析最近在网上看到一个python面试题目:如何用Python生成一亿个手机号?
我第一次看到的时候就想,这不是很简单吗?直接上random.randint(1,999999999999)就行了。
但我马上发现了错误:这是要生成一个1-9999999之间的随机数,可能是1,也可能是666。
但是电话号码是11位,前3位只有指定的号段,比如135、136。Direct random.randint(1,99999999999)不符合条件。
那么如何生成呢?于是就有了下面这段代码:
import random def create _ phone _ num(num):all _ phone _ nums=set()#当True时存储生成的电话号码:#因为set会自动重复,所以电话号码会无限循环生成,直到num numbers stop start=random . choice([ 135 , 136 , 137]) #存储前3位的号码段,随机取一个end= 。join(random . sample(string . digits,8) # random生成后8位all _ phone _ nums . add(f { start } { end } )#拼接前3位和后8位if len(all_phone_nums)=num: #如果数字个数等于num,则停止通过这段代码编写破解phone _ num (10000 * 10000)。
我都整理出来了,今天我们一起来学习~
如有遗漏或错误,请不吝赐教~
随机数是哪个文件生成的?在上面代码的第一行:import random,我们导入了标准库random。
这个库中只有一个文件:random.py这个文件的结构主要分为三个部分(如下图所示)。他们的职能是:
主要有两类:Random(_Random。Random)和SystemRandom(随机),其中我们用的最多。Random()有两个测试方法:_test_generator(n,func,args)和_test(N=2000)。这部分不需要我们调用的函数:使用方法就像上面代码的随机.
random提供了哪些随机数方法?接下来,我们将重点讨论作为python用户我们将使用哪些随机数方法,这是上面提到的random.py文件的第三部分。
如下面的代码所示,random提供了22种方法,主要分为2类:
普通用户常用的方法有12种;科学计算常用的方法有10种。
普通用户的12随机数法怎么用?以上22种随机数方法,我在这里重点介绍普通用户常用的12种方法。
至于科学计算用的后10种方法,因为真的很先进,我就不在这里浪费时间了。有兴趣的同学可以随便翻翻数学书:《概率论》。
1.随机的。种子随机。getstaterandom。setstate把这三个放在一起,因为random本质上是产生伪随机数的,这三个函数很好的体现了伪随机的这个特性。
代码示例:种子
#指定种子后生成的随机数同random.seed(1)print(随机数1:,random . random())random . seed(1)print(随机数2:,Random.random())# output:#: #随机数1: 0.1343642411240122 #随机数2: 0.1343642411240122代码示例:random.getstate random.setstate
import random . seed(42)print(random . sample(range(20),k=10)) st=random.getstate () #最后一行代码生成后,random print的状态(random . same(range(20)),K=20))# print 20 random . setstate(ST)#还原最后一个随机状态print(random . same(range(20),K=10)# print same first 10 # output:#[12,0,4,3,11,10,19,1
代码示例
float=random . random() float=0.123565654548978 3。Random.uniform生成一个在[a,b]范围内的随机浮点数
代码示例
Float=random.uniform (11,15) float=13.882923467738049 4。Random.randint随机生成[a,b]范围内的整数。
代码示例
Int=random.randint (1,9) int=2 5。random.choice从非空序列中随机选择一段数据并将其带回来。序列可以是列表、元组、字符串、集合。
代码示例
Str=random.choice(程序员的晚枫原创系列) str=original 6。Random.choices Python版是新增的。从簇中随机选取k次数据,返回一个列表,设置权重。有四个参数。
Population: cluster,必需。重量:相对重量。Cum_weights:累积权重,不常用。不能和权重分享。k:选择的数量。代码示例
Str=[Cheng , Sequence , member , Late , Maple] res=random.choices (str,weights=[0,0,1,0,0],k=5) 因为给出了“成员”这个词,通过权重得到的结果是[member] res=[member , member , Member , Member , member] 7。random.randrange (a,b,step)指range的用法:
不指定步长,在[a,b]范围内随机生成一个整数。指定step,step作为步长将进一步限制[a,b]的范围。例如,randrange(0,11,2)表示生成[0,11]范围内的随机偶数。如果不指定,默认情况下从0开始。代码示例
Int=random.randrange (3,9) int=5 8.random.sample从一个集合中选择k个元素并返回一个列表。簇可以是列表、元组、串、集。
不重复:可以理解为发一副扑克牌。真的很随意,但不会重复。随机次数,不能超过集合的长度。发牌时,一副牌有54张,不可能随机抽100次。代码示例
Str=[Cheng , Xu , Yuan , Late , Feng] res=random.sample (str,5) res=[Yuan , Xu , Cheng , Feng , Late] 9所以如果你想改变tuple这样的不可变集合,就会报错。
代码示例
Str=[成,徐,元,迟,丰,尤,顺,徐] random.shuffle (str) str=[丰,顺,元,徐
代码示例
int=random . get random bits(8) int=136 写在最后。虽然我是一个Python程序员,但是在最近的开发中发现很多基础知识并没有掌握。
于是我决定从这篇文章开始,我决定带着加入Python时喂马劈柴面朝大海的浪漫情怀,认真整理和分享Python中常见的知识点。
希望对你有用。
原创作品来自Python自动化办公社区,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。