Python面向对象设计简单的用户信息操作程序

创建skill目录,person.py,manage.py,main.py

 

创建person类

# coding=utf-8
class Person(object):
    def __init__(self, name, skill):
        self.name = name
        self.skill = skill

    def __str__(self):
        print(f"{self.name}会{self.skill}")

创建manage类:

# coding=utf-8
from skill.person import *

'''
    获取用户输入Name和skill信息,保存到skill.data文件中,有增删改查功能,加载文件功能
'''


class Manage(object):
    # 定义初始化列表数据
    def __init__(self):
        self.user_list = []

    def run(self):
        self.load()
        print('*' * 50, '欢迎进入系统', '*' * 50)
        while True:
            self.show_menu()
            user_input = int(input('请输入你要进行得操作:'))
            if user_input == 1:
                self.add_content()
            elif user_input == 2:
                self.delete_user()
            elif user_input == 3:
                self.modify()
            elif user_input == 4:
                self.search()
            elif user_input == 5:
                self.save()

    # 设置静态方法,定义用户进入界面显示
    @staticmethod
    def show_menu():
        print('1、添加信息\t2、删除信息\t3、修改信息\t4、查询信息\t5、保存操作')

    def add_content(self):
        name = input('name:')
        skill = input('skill:')
        person = Person(name, skill)
        self.user_list.append(person)

    def delete_user(self):
        del_name = input('输入要删除的用户名:')
        for i in self.user_list:
            if del_name == i.name:
                self.user_list.remove(i)
                break
            else:
                print('用户不存在')

    def modify(self):
        user_input = input('输入修改的用户名:')
        for i in self.user_list:
            if i.name == user_input:
                modify_name = input('修改name:')
                modify_skill = input('修改skill:')
                i.name = modify_name
                i.skill = modify_skill
                break
        else:
            print('输入用户不存在')

    def search(self):
        search_name = input('输入查询得用户名:')
        for i in self.user_list:
            if search_name == i.name:
                print(f'用户名:{i.name},技能:{i.skill}')
                break
        else:
            print('查找用户不存在!')

    def save(self):
        f = open('skill.data', 'w')
        # 将列表分组内得对象转换为字典
        new_list = [i.__dict__ for i in self.user_list]
        # 将列表转换为字符串进行写入
        f.write(str(new_list))
        f.close()

    def load(self):
        # 捕获异常,有文件则读取,没有文件则创建
        try:
            f = open('skill.data', 'r')
        except:
            f = open('skill.data', 'w')
        else:
            # 读取数据
            data = f.read()
            # 将数据格式转换为列表
            new_list = eval(data)
            # 将数据遍历将value值存储到对象当中
            self.user_list = [Person(i['name'], i['skill']) for i in new_list]
        finally:
            f.close()

 main主程序:

from skill.manage import *

if __name__ == '__main__':
    play_manager = Manage()
    play_manager.run()

验证功能:

 保存为列表嵌套字典格式

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值