2021-02-05

py管理系统

文章目录

界面

def show_menu():
    print("*" * 11+"探针管理系统 V_1.0"+"*" * 11)
    print("1、添加探针信息")
    print("2、修改探针信息")
    print("3、删除探针信息")
    print("4、显示所有探针信息")
    print("5、保存信息")
    print("6、读取信息")
    print("0、退出系统")
    print("*" * 40)

添加

实现步骤:
1.输入探针的探针号、类型、版本等等
            1.1判断探针编号是否存在,如果存在则拒绝添加,提示“编号已存在,不能重复添加”
            1.2如果不重复,则继续接下来的操作
          2.把这些信息保存在一个字典里
            2.1探针探针号作为键,剩下的属性(类型、版本)作为值
            2.2类似: '1001' {'type':xxx, 'version':xxx}
          3.提示添加成功
def add_info():
    print("添加探针===>")
    probe_id = input("请输入要添加的探针号:")
    all_id = list(probe_dict.keys())
    if probe_id in all_id:
        print("探针号已存在,不能重复添加!!!")
        return
    probe_type = input("请输入要添加探针的类型:")
    probe_version = input("请输入要添加探针的版本:")
    info_dict = {"type": probe_type, "version": probe_version}
    probe_dict[probe_id] = info_dict
    print("编号为 %s 的探针信息添加成功!!!" % probe_id)
    # print(probe_dict)   # {'1001': {'type': '侦查', 'version': '1.0'}}

修改

实现步骤:
 1.拿到要修改探针的探针号
         1.1如果探针号不存在,则提示错误信息,终止函数执行,返回
         1.2如果存在,则修改对应的信息
              1.2.1 显示原来的信息再修改
         2.因为并不是所有的信息都需要修改,万一不需要修改的怎么办?如何简化使用操作?
            2.1判断修改时输入的是不是为空,为空就保持不变,不为空则说明修改了
def update_info():
    """修改探针信息"""
    print("修改探针===>")
    probe_id = input("请输入你要修改的探针号")
    all_id = list(probe_dict.keys())
    if probe_id not in all_id:
        print("该探针号不存在!!!")
        return
    new_type = input("类型是:%s   修改后的类型:" % probe_dict[probe_id]['type'])
    new_version = input("版本是:%s   修改后的版本:" % probe_dict[probe_id]['version'])
    # 因为并不是所有的信息都需要修改,万一不需要修改的怎么办?如何简化使用操作?
    if new_type != "":
        probe_dict[probe_id]['type'] = new_type
    if new_version != "":
        probe_dict[probe_id]['version'] = new_version
    print("探针号为 %s 的探针信息修改成功!!!" % probe_id)

删除

 实现步骤:
 1.输入要删除探针的探针号
 2.判断探针号是否存在,不存在就给出提示信息,终止函数执行
 3.如果存在,则直接删除
def delete_info():
    """删除探针信息"""
    print("删除探针===>")
    probe_id = input("请输入你要删除的探针的探针")
    all_id = list(probe_dict.keys())
    if probe_id not in all_id:
        print("该探针号不存在!!!")
        return
    else:
        del probe_dict[probe_id]
    print("探针号为 %s 的探针信息删除成功!!!" % probe_id)

显示

 实现步骤:
 1.判断探针是否存在,如果不存在则提示返回
   1.1怎么判断?当列表长度为0时,则说明不存在
  2.如果存在,就打印表头
  3.打印分割线
  4.遍历探针信息,依次输出字典信息
def show_all_info():
    """显示探针信息"""
    print("显示所有探针信息===>")
    # 判断探针是否存在
    if len(list(probe_dict.keys())) == 0:
        print("当前没有任何的探针信息,请先选择操作 1,添加探针!!!")
        return

    # 若存在,则打印表头
    print("-" * 40)
    for i in ["探针", "类型", "版本"]:
        print(i, end="\t\t")
    print("")
    print("-" * 40)
    # 这个items方法是把字典转换成列表的方法,须特别注意
    for j in probe_dict.items():
        print("%s\t\t%s\t\t%s" % (j[0] , j[1]['type'] , j[1]['version']))
    print("-" * 40)

保存

 实现步骤:
 1.判断探针是否存在,如果不存在则提示返回
 2.保存在p3.txt
def save():
    # 判断探针是否存在
    if len(list(probe_dict.keys())) == 0:
        print("当前没有任何的探针信息,请先选择操作 1,添加探针!!!")
        return
    # 若存在,则保存在p3.txt
    with open("p3.txt", "wt") as out_file:
        for j in probe_dict.items():
            out_file.write("%s %s %s\n" % (j[0] , j[1]['type'] , j[1]['version']))

读取

 实现步骤:
 1.打开p3.txt,不存在会错误返回
 2.按行读取,切分格式
 3.判断重复
 	3.1重复的不管,不重复的添加
def load():
    # # 先确认一遍
    # sign = input("是否继续(y/n)")
    # if sign != "Y" or "y":
    #     return
    with open("p3.txt", "r") as in_file:
        text = in_file.readline()
        while text:
            text_list = text.splitlines()
            # print(text_list)
            # ['1001 侦查 1.0']

            probe_list = text_list[0]
            probe_list = probe_list.split(" ") #切分合适的格式

            all_id = list(probe_dict.keys())  #判断重复,添加
            if probe_list[0] not in all_id:   
                info_dict = {"type": probe_list[1], "version": probe_list[2]}
                probe_dict[probe_list[0]] = info_dict

            text = in_file.readline()         #下一行

p1

import p2 

while True:
    p2.show_menu()
    act = input("请输入您的操作:")

    if act == "1":# 1.添加探针信息
        p2.add_info()

    elif act == "2":# 2.修改探针信息
        p2.update_info()

    elif act == "3":# 3.删除探针信息
        p2.delete_info()

    elif act == "4":# 4.显示所有探针信息
        p2.show_all_info()
        
    elif act == "5":# 5.保存到文件
        p2.save()
    
    elif act == "6":# 6.从文件读取
        p2.load()

    elif act == "0":# 0.退出系统
        print("不!!!为什么要退出!!!")
        break
    
    else:
        # 输入其他任意数字
        print("您输入的有误,请重新输入:")

2021-02-05

上一篇:华三WiFi控制器内远程telnetAP


下一篇:Marlin 1.1.4 Confuguration.h 汉化 翻译