一、生成隨機手機號碼
生成手機號碼是電話號碼隨機生成的重要部分,可以用以下代碼實現:
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/zh-tw/n/186028.html