文章目录

  • 需求:编写一个云主机管理系统
  • 作业:编写根据IP查找云主机的代码


需求:编写一个云主机管理系统

编写一个云主机管理系统:
- 添加云主机(IP, hostname,IDC)
- 搜索云主机(顺序查找)
- 删除云主机
- 查看所有的云主机信息

# 从collections模块中导入namedtuple工具
from collections import namedtuple

menu = """
                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统
            
请输入你的选择:"""

# 思考1. 所有的云主机信息如何存储?选择哪种数据类型存储呢?  选择列表
hosts = []                  # 现在云主机列表为空
# 思考2: 每个云主机信息该如何存储?IP, hostname,IDC   选择命名元组
host = namedtuple('host', ('hostname', 'ip', 'idc'))    # 命名元组

while True:
    choice = input(menu)
    if choice == '1':           # 添加云主机
        hostname = input("hostname:")
        ip = input("ip:")
        idc = input("IDC(ali,huawei,tencent...):")
        host1 = host(hostname, ip, idc)     # host1是第一台云主机的信息
        hosts.append(host1)                 # 添加新的云主机,hosts是总云主机列表
        print(f"{hostname}主机的IP是{ip},idc是{idc}")
    elif choice == '2':			# 作业部分
        pass
    elif choice == '3':
        pass
    elif choice == '4':
        print('云主机管理系统'.center(30,'*'))
        print("hostname\tip\t\t\t\tidc")        # 表头信息
        count = 0                               # 云主机个数
        for host in hosts:      # 循环总云主机列表
            count += 1
            print(f"{host.hostname}\t{host.ip}\t{host.idc}")    # 打印云主机的信息
        print("云主机总个数:%d" %(count))
    else:
        print("退出系统,欢迎下次使用......")
        exit()

执行结果,如下:

E:\python\python.exe E:/pythonProject1/2021-11-28-python_study/day03/08_云主机管理系统.py

                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统
            
请输入你的选择:1
hostname:westos.org
ip:172.25.254.100
IDC(ali,huawei,tencent...):tencent
westos.org主机的IP是172.25.254.100,idc是tencent

                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统
            
请输入你的选择:1
hostname:qian.org
ip:172.25.254.111
IDC(ali,huawei,tencent...):huawei
qian.org主机的IP是172.25.254.111,idc是huawei

                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统
            
请输入你的选择:4
***********云主机管理系统************
hostname	ip				idc
westos.org	172.25.254.100	tencent
qian.org	172.25.254.111	huawei
云主机总个数:2

                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统
            
请输入你的选择:5
退出系统,欢迎下次使用......

Process finished with exit code 0

作业:编写根据IP查找云主机的代码

编写一个云主机管理系统:
- 搜索云主机(顺序查找)

# 从collections模块中导入namedtuple工具
from collections import namedtuple

menu = """
                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统

请输入你的选择:"""

host = namedtuple( 'host', ( 'hostname', 'ip', 'idc' ) )    # 命名元组存放单个云主机的数据
hosts = []      # 所有云主机的数据存放在列表中

# 3. 设置死循环
while True:
# 1. 请输入用户的选择
    choice = input(menu)
# 2. 根据选择进行判断,执行代码
    if choice == '1':                   # 添加云主机
        hostname = input('hostname:')   # 输入hostname,ip,idc
        ip = input('ip:')
        idc = input('idc:')
        host1 = host( hostname, ip, idc )     # 命名元组存储输入的云主机信息
        hosts.append(host1)                   # 将该命名元组追加到列表hosts后面
        print(f'{hostname}云主机的ip是{ip},IDC是{idc}')

    elif choice == '2':                 # 根据IP搜索云主机
        choice_ip = input('输入要查找的IP:')
        for host in hosts:              # 列表的for循环
            if choice_ip == host.ip:
                print('查找的主机信息如下:'.center(30, '*'))  # 表头
                print('hostname\tip\t\t\t\tidc')           # 制作表头
                print(host.hostname, host.ip, host.idc)    # 打印匹配的云主机信息
                break
        else:
            print('该主机不存在!')        # 如果查找的IP不存在,就执行此代码

    elif choice == '3':
        pass

    elif choice =='4':                          # 查看云主机列表信息
        print('云主机管理列表'.center(30, '*'))   # 表头
        print('hostname\tip\t\t\t\tidc')          # 制作表头
        count = 0               # 统计云主机的个数
        for host in hosts:      # 循环显示云主机列表中的主机信息
            count += 1
            print(host.hostname, host.ip, host.idc)
        print('云主机的总数是%d' %(count))

    else:
        print('退出系统,欢迎下次使用......')
        exit()

执行结果,如下:

E:\python\python.exe E:/pythonProject1/2021-11-28-python_study/day03/09_作业改进版_云主机管理系统.py

                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统

请输入你的选择:1
hostname:westos.org
ip:172.25.254.100
idc:tencent
westos.org云主机的ip是172.25.254.100,IDC是tencent

                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统

请输入你的选择:1
hostname:qian.org
ip:172.25.254.111
idc:huawei
qian.org云主机的ip是172.25.254.111,IDC是huawei

                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统

请输入你的选择:1
hostname:yao.org
ip:172.25.254.200
idc:alibaba
yao.org云主机的ip是172.25.254.200,IDC是alibaba

                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统

请输入你的选择:4
***********云主机管理列表************
hostname	ip				idc
westos.org 172.25.254.100 tencent
qian.org 172.25.254.111 huawei
yao.org 172.25.254.200 alibaba
云主机的总数是3

                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统

请输入你的选择:2
输入要查找的IP:172.25.254.222
该主机不存在!

                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统

请输入你的选择:2
输入要查找的IP:172.25.254.100
**********查找的主机信息如下:**********
hostname	ip				idc
westos.org 172.25.254.100 tencent

                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统

请输入你的选择:2
输入要查找的IP:172.25.254.100
**********查找的主机信息如下:**********
hostname	ip				idc
westos.org 172.25.254.100 tencent

                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统

请输入你的选择:4
***********云主机管理列表************
hostname	ip				idc
westos.org 172.25.254.100 tencent
qian.org 172.25.254.111 huawei
yao.org 172.25.254.200 alibaba
云主机的总数是3

                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统

请输入你的选择:2
输入要查找的IP:172.25.254.111
**********查找的主机信息如下:**********
hostname	ip				idc
qian.org 172.25.254.111 huawei

                云主机管理系统
            1). 添加云主机
            2). 搜索云主机(IP搜索)
            3). 删除云主机
            4). 云主机列表
            5). 退出系统

请输入你的选择:5
退出系统,欢迎下次使用......

Process finished with exit code 0