如何生成1亿个手机号码?Python来教你。真实的面试题哦。

案例解析

最近在网上看到一个python的面试题目: 如何用Python生成1亿个手机号码?

我第一眼看到的时候心想,这个还不简单?直接 random.randint(1,999999999999) 就完事了。

但是马上就发现了这其中的错误:这个是生成1-99999999之间的随机数,可能是1,也可能是666.

但电话号码是11位的,而且前3位只有指定的号段,比如135、136。直接 random.randint(1,999999999999) 这么做并不符合条件。

那么如何生成呢?于是有了下面这段代码:

import random
def create_phone_num(num):all_phone_nums = set()  # 存放生成的电话号码while True:  # 因为set会自动去重,因此死循环生成电话号码,直到等于num个号码停止start = random.choice(['135', '136', '137'])  # 存放前3位的号段,从中随机取一个end = ''.join(random.sample(string.digits, 8))  # 随机生成后面8位数字all_phone_nums.add(f'{start}{end}')  # 拼接前3位和后8位if len(all_phone_nums) >= num:  # 如果号码个数等于num,则停止breakphone_num(10000 * 10000)

经过这次写代码我才发现,原来Python的random里


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部