【Python】生死簿管理系统,估值5毛

news2024/11/16 3:24:56

生死簿管理系统

代码

"""
生死簿管理系统
"""
import os
import time

file_name = 'data.txt'


def main():
    while True:
        main_menu()
        choice = (int)(input("请选择: "))
        if choice in [0, 1, 2, 3, 4, 5, 6, 7]:
            if choice == 0:
                answer = input("确定要退出生死簿系统吗?y/n ")
                if answer.lower() == 'y':
                    print("已退出!!!")
                    break
                else:
                    continue
            elif choice == 1:
                add()
                pass
            elif choice == 2:
                pass
            elif choice == 3:
                delete()
                pass
            elif choice == 4:
                pass
            elif choice == 5:
                pass
            elif choice == 6:
                pass
            elif choice == 7:
                pass
        else:
            print("")


def main_menu():
    print("=============================生死簿管理系统=============================")
    print("-----------------------------功能菜单-----------------------------")
    print("1.录入人员")
    print("2.查找人员")
    print("3.删除人员")
    print("4.修改人员")
    print("5.排序")
    print("6.统计总人数")
    print("7.查询所有")
    print("0.退出")
    print("----------------------------------------------------------------")


def add():
    person = {}
    while True:
        person_id = input("请输入人员ID: ")
        if not id:
            print("id不能为空")
            continue
        else:
            person["id"] = person_id
            break
    while True:
        name = input("请输入人员姓名: ")
        if not name:
            print("id不能为空")
            continue
        else:
            person["name"] = name
            break
    while True:
        num = input("请输入人员阳寿: ")
        if not num:
            print("阳寿不能为空")
            continue
        else:
            person["num"] = num
            break

    # 保存数据
    save_data(person)
    # 是否继续添加
    s = input("是否继续添加人员?y/n ")
    if s.lower() == 'y':
        add()
    else:
        main()
    pass


def save_data(person):
    print("数据保存中。。。")
    try:
        # 追加
        file_stream = open(file_name, 'a', encoding="utf-8")
    except Exception as e:
        # 写入
        file_stream = open(file_name, 'w', encoding="utf-8")
    print("数据保存成功。。。")
    # 写入 数据状态
    person['yn'] = 1
    # 创建时间
    person['create_time'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
    file_stream.write(str(person) + "\n")
    # 关闭文件
    file_stream.close()
    pass


def search():
    pass


def delete():
    while True:
        person_id = input("请输入要删除的人员ID:")
        person_list = []
        if person_id != '' and person_id is not None:
            if os.path.exists(file_name):
                with open(file_name, 'r', encoding="utf-8") as file:
                    person_list = file.readlines()
            else:
                pass
            # 定义是否被删除
            del_flag = False
            if person_list:
                # w模式会清空内容
                with open(file_name, 'w', encoding="utf-8") as wfile:
                    for item in person_list:
                        # 转为dict类型
                        d = dict(eval(item))
                        if d['id'] != person_id:
                            wfile.write(str(d) + "\n")
                        else:
                            del_flag = True
                    if del_flag:
                        print(f"ID为{person_id}的人员已删除!!!")
                    else:
                        print(f'ID为{person_id}的人员不存在!!!')
            else:
                print(f'ID为{person_id}的人员不存在!!!')
                break
            query_all()
            while True:
                answer = input("是否继续删除?y/n ")
                if answer == '' or answer is None:
                    continue
                else:
                    break
            if answer.lower() == 'y':
                continue
            else:
                break
        else:
            print("ID不能为空")
    pass


def modify():
    pass


def sort():
    pass


def total():
    pass


def query_all():
    pass


if __name__ == '__main__':
    main()

打包可执行文件

pip3 install PyInstaller

pyinstaller -F /Users/kw/kwzone/Python/code/python-hello/实操篇/BookOfLifeAndDeath/bookmgr.py

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1246618.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年MathorCup高校数学建模挑战赛—大数据竞赛A题58到家家政服务订单分配问题求解全过程文档及程序

2022年MathorCup高校数学建模挑战赛—大数据竞赛 A题 58到家家政服务订单分配问题 原题再现: “58 到家”是“58 同城”旗下高品质、高效率的上门家政服务平台,平台向用户提供家政保洁、保姆、月嫂、搬家、维修等众多生活领域的服务。在家政保洁场景中…

WPF面试题中级篇

WPF中级篇[17] 15. 描述下WPF对象完整的层次结构? Object:Object 是 .NET Framework 中所有类的根类。它提供了一些基本的方法和属性,如 Equals、GetHashCode 和 ToString。所有其他类都直接或间接地继承自 Object。Dispatcher:Dispatcher…

蒸蛋器上平台销售UL1026检测报告标准

蒸蛋器是一种采用发热盘通电后,使盘内产生高温蒸汽来快速把禽蛋蒸熟的一种生活小家电。蒸蛋器最大的特点就是快速、简单,并充满乐趣。 深圳ISO 17025实验室办理蒸蛋器亚马逊美国站UL报告办理UL1026测试标准。 UL1026标准是关于蒸蛋器的安全性要求&…

CMS指纹识别方式

一、手工识别 1.robots.txt文件 robots.txt文件我们写过爬虫的就知道,这个文件是告诉我们哪些目录是禁止爬取的。但是大部分的时候我们都能通过robots.txt文件来判断出cms的类型 如: 从wp路径可以看出这个是WordPress的cms 这个就比较明显了直接告诉我们是PageAdmin cms 也…

java堆文件排查

技术主题 在之前的开发的一个项目中,因为程序的一个bug,导致一些引用的对象一直没有回收,从而导致堆内存一直在增大,老年代一直在增大,老年代进行堆积,后来的排查思路是通过dump堆的文件,然后对…

易点易动固定资产管理系统:实现固定资产与财务系统的高效对接

在企业的日常运营中,固定资产的管理和财务账目的记录是两项不可或缺的任务。然而,由于传统的管理方式存在数据孤岛和信息不一致等问题,往往导致工作效率低下和管理混乱。为了解决这一问题,易点易动固定资产管理系统应运而生。该系…

每日一题 2824. 统计和小于目标的下标对数目(简单)

简单题&#xff0c;走流程 class Solution:def countPairs(self, nums: List[int], target: int) -> int:ans 0for i in range(len(nums)):for j in range(i 1, len(nums)):if nums[i] nums[j] < target:ans 1return ans

2023年ESG投资研究报告

第一章 ESG投资概况 1.1 定义 ESG投资&#xff0c;亦称负责任投资&#xff0c;是一种融合环境&#xff08;Environment&#xff09;、社会&#xff08;Social&#xff09;和治理&#xff08;Governance&#xff09;考量的投资方法&#xff0c;旨在通过综合这些因素来优化投资…

30㎡新中式大横厅|方寸之间,诉说东方写意生活。福州中宅装饰,福州装修

今天要分享的是一个新中式风格的客厅装修&#xff0c;它的开间是4.5米&#xff0c;进深是6.5米。设计中有许多亮点&#xff0c;让我们一起来看看。 1️⃣ 首先&#xff0c;这个客厅采用了双眼皮无主灯吊顶的设计&#xff0c;让整个空间看起来更加高挑宽敞。吊顶的边缘线条简洁明…

Jmeter基础和概念

JMeter 介绍&#xff1a; 一个非常优秀的开源的性能测试工具。 优点&#xff1a;你用着用着就会发现它的重多优点&#xff0c;当然不足点也会呈现出来。 从性能工具的原理划分&#xff1a; Jmeter工具和其他性能工具在原理上完全一致&#xff0c;工具包含4个部分&#xff1a; …

【广州华锐互动】利用VR体验环保低碳生活能带来哪些教育意义?

随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已经逐渐走进了我们的生活。从游戏娱乐到教育培训&#xff0c;VR技术的应用范围越来越广泛。而在这个追求绿色、环保的时代&#xff0c;VR技术也为我们带来了一种全新的环保低碳生活方式。让我们一起走进…

Go 本地搭建playground

搭建go playground 的步骤 1、安装docker 如果你使用的Ubuntu&#xff0c;docker的安装步骤可以参见这里&#xff0c;这是我之前写的在Ubuntu18.04下安装fabric&#xff0c;其中有docker的安装步骤&#xff0c;这里就不再赘述了。 CentOS下安装docker的&#xff0c;可以参见…

Modbus RTU转Profinet网关连接PLC与变频器通讯在机床上应用案例

背景&#xff1a;以前在机床加工车间里&#xff0c;工人们忙碌地操作着各种机床设备。为了使整个生产过程更加高效、流畅&#xff0c;进行智能化改造。 方案&#xff1a;在机床上&#xff0c;PLC通过Modbus RTU转Profinet网关连接变频器进行通讯&#xff1a;PLC作为整个生产线…

Python用爬虫ip抓取数据为啥还被限制ip?

今天遇到一个奇怪的事情&#xff0c;使用python爬取一个网站&#xff0c;但是频繁出现网络请求错误&#xff0c;之后使用了爬虫ip&#xff0c;一样会显示错误代码。一筹莫展之下&#xff0c;我对现在的IP进行在线测试&#xff0c;发现IP质量很差。后来我总结了以下几点原因。 P…

流量分析-PhishingEmail_WriteUp

一、题目问题 问题1&#xff1a;黑客的email名称 问题2&#xff1a;黑客向几人发送了钓鱼邮件 问题3&#xff1a;黑客传输的木马文件名 问题4&#xff1a;下载并运行了木马文件的人的email名称和ip地址&#xff0c;用“-”连接 问题5&#xff1a;黑客用于反弹shell的主机i…

ubuntu22.04 arrch64版在线安装redis

脚本 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 echo "deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse" >…

氮化镓的晶体学湿式化学蚀刻法

引言 目前&#xff0c;大多数III族氮化物的加工都是通过干法等离子体蚀刻完成的。干法蚀刻有几个缺点&#xff0c;包括产生离子诱导损伤和难以获得激光器所需的光滑蚀刻侧壁。干法蚀刻产生的侧壁典型均方根(rms)粗糙度约为50纳米&#xff0c;虽然已经发现KOH基溶液可以蚀刻AlN…

工厂模式之抽象工厂模式(常用)

抽象工厂模式 工厂方法模式中考虑的是一类产品的生产&#xff0c;如畜牧场只养动物、电视机厂只生产电视机、计算机软件学院只培养计算机软件专业的学生等。 同种类称为同等级&#xff0c;也就是说&#xff1a;工厂方法模式中只考虑生产同等级的产品&#xff0c;但是在现实生…

【译】Spring 6 入参数据校验: 综合指南

一、前言 在 Spring 6.1 中&#xff0c;有一个非常值得注意的重要改进——编程式验证器实现。Spring 长期以来一直通过注解支持声明式验证&#xff0c;而 Spring 6.1 则通过提供专用的编程式验证方法引入了这一强大的增强功能。 编程式验证允许开发人员对验证过程进行细粒度控…

【LeetCode:2824. 统计和小于目标的下标对数目 | 模拟+二分】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…