一、生成随机手机号码
生成手机号码是电话号码随机生成的重要部分,可以用以下代码实现:
import random
def generate_phone_number():
"""随机生成手机号码"""
prefix_list = ['130', '131', '132', '133', '134', '135', '136', '137', '138',
'139', '147', '150', '151', '152', '153', '155', '156', '157',
'158', '159', '186', '187', '188', '198']
prefix = random.choice(prefix_list)
suffix = ''.join(str(random.randint(0, 9)) for _ in range(8))
return prefix + suffix
print(generate_phone_number())
这里利用 random 模块来实现生成手机号码,首先定义一个前缀列表,然后通过 random.choice 随机选择一个前缀,然后通过随机生成 8 个数字来产生手机号码后缀。
二、生成随机座机号码
生成随机座机号码也是电话号码随机生成的重要部分,用以下代码实现:
import random
def generate_landline_number():
"""随机生成座机号码"""
# 区号前缀列表
prefix_list = ['010', '021', '022', '023', '024', '025', '027', '028', '029',
'0755', '0756', '0731', '0734', '0728', '0739']
prefix = random.choice(prefix_list)
suffix = ''.join(str(random.randint(0, 9)) for _ in range(8))
return prefix + suffix
print(generate_landline_number())
同样利用 random 模块来实现,先定义一个区号前缀列表,然后随机选择一个前缀,再通过随机生成8个数字来产生电话号码后缀。
三、生成带区号的随机座机号码
有时需要生成带区号的随机座机号码,以下代码实现:
import random
def generate_landline_number_with_area_code():
"""随机生成带区号的座机号码"""
# 区号前缀列表
prefix_list = ['010', '021', '022', '023', '024', '025', '027', '028', '029',
'0755', '0756', '0731', '0734', '0728', '0739']
prefix = random.choice(prefix_list)
area_code_list = ['1', '2', '3']
if prefix.startswith('0'):
area_code = random.choice(area_code_list)
return prefix + area_code + ''.join(str(random.randint(0, 9)) for _ in range(7))
else:
return prefix + ''.join(str(random.randint(0, 9)) for _ in range(8))
print(generate_landline_number_with_area_code())
除了前两步与生成随机座机号码相同外,这个函数还考虑了区号为 0 的情况。如果区号为 0,则会随机选择一个区号数字(1、2、3),并将它加在区号前缀的结尾,然后在后面加上8个数字来产生座机号码。
四、生成随机电话号码
综合上面的三个部分,我们可以写一个函数来随机生成电话号码,代码如下:
import random
def generate_random_phone_number():
"""随机生成电话号码"""
if random.randint(0, 1):
return generate_phone_number()
else:
return generate_landline_number()
print(generate_random_phone_number())
这个函数中,我们采用随机的方式,有一半概率生成手机号码,有一半概率生成座机号码。
五、生成多个不重复的随机电话号码
有时需要生成多个不重复的随机电话号码,代码如下:
def generate_n_random_phone_numbers(n):
"""生成n个不重复的电话号码"""
phone_numbers = set()
while len(phone_numbers) < n:
phone_numbers.add(generate_random_phone_number())
return phone_numbers
print(generate_n_random_phone_numbers(10))
这里用 set 来确保生成的电话号码不重复,然后通过 while 循环将生成的号码添加到 set 中,直到 set 的长度达到我们需要的个数 n 为止。
六、总结
电话号码随机生成可以应用于多个场景,如数据测试、数据脱敏等,我们可以采用不同的策略和方法来实现号码随机生成。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/186028.html