電話號碼隨機生成

一、生成隨機手機號碼

生成手機號碼是電話號碼隨機生成的重要部分,可以用以下代碼實現:


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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-26 21:09
下一篇 2024-11-26 21:09

相關推薦

發表回復

登錄後才能評論