欢迎访问宙启技术站
智能推送

利用Python编写随机生成国际号码的程序

发布时间:2023-12-11 04:11:16

以下是一个利用Python编写的随机生成国际号码的程序,并附带使用例子:

import random

# 定义国家代码和区号列表
country_codes = {
    "美国": "+1",
    "中国": "+86",
    "英国": "+44",
    "德国": "+49",
    "日本": "+81",
    # 添加更多的国家和代码...
}

area_codes = {
    "+1": ["202", "212", "213", "310", "415", "512", "617", "713", "808", "917"],
    "+86": ["10", "21", "22", "23", "24", "25", "27"],
    "+44": ["20", "22", "23", "24", "28", "29", "30", "31", "32", "33"],
    "+49": ["30", "31", "40", "69", "221", "511", "622", "911"],
    "+81": ["3", "4", "6", "11", "45", "52", "75"]
    # 添加更多的区号...
}

def generate_phone_number(country):
    # 从 country_codes 字典中获取国家代码
    country_code = country_codes.get(country)
    if country_code:
        # 从 area_codes 字典中获取国家对应的区号列表
        area_code_list = area_codes.get(country_code)
        if area_code_list:
            # 随机从区号列表中选择一个区号
            area_code = random.choice(area_code_list)
            # 生成 7 位随机号码
            phone_number = ''.join(random.choices("0123456789", k=7))
            # 合并国家代码、区号和号码,并返回结果
            return f"{country_code} {area_code} {phone_number}"
    
    # 如果国家不在国家代码或区号列表中,则返回空字符串
    return ""
    

# 使用例子
if __name__ == "__main__":
    countries = ["美国", "中国", "英国", "德国", "日本"]
    
    for country in countries:
        phone_number = generate_phone_number(country)
        if phone_number:
            print(f"{country} 的随机电话号码是:{phone_number}")
        else:
            print(f"无法生成 {country} 的电话号码")

这个程序首先定义了一个国家代码和区号的字典,其中键是国家的名称,值是国家对应的国家代码。然后定义了一个区号的字典,其中键是国家代码,值是一个包含该国家所有可能区号的列表。

generate_phone_number 函数接收一个国家名称作为输入,然后根据国家名称找到对应的国家代码和区号列表。然后,从区号列表中随机选择一个区号,并生成一个7位的随机号码。最后,将国家代码、区号和号码合并,并返回。

在主程序中,定义了一个包含多个国家名称的列表。然后,对每个国家调用 generate_phone_number 函数生成随机号码,并打印出来。如果生成的号码为空,则说明无法生成该国家的号码。

使用这个程序,你可以根据需要生成不同国家的随机号码,例如:

美国 的随机电话号码是:+1 310 8625307
中国 的随机电话号码是:+86 21 7584342
英国 的随机电话号码是:+44 28 4526098
德国 的随机电话号码是:+49 221 7096358
日本 的随机电话号码是:+81 11 5882745

请注意,以上例子中生成的号码仅用于示范目的,实际生成的号码可能不存在或者以其他方式被使用。