文章目录
- 需求:编写一个云主机管理系统
- 作业:编写根据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