python管理系统(大作业)

目录

一、🔎源代码

二、💯代码讲解

一、🔎源代码

user_list = [
    {'name': '张三', 'phone': '123', 'wx': '321'},
    {'name': '李四', 'phone': '456', 'wx': '654'}
]


def add_user():
    name = input('请输入姓名:')

    for i in user_list:
        if i['name'] == name:
            print('此用户名已重复')
            return

    phone = input('请输入手机号:')
    wx = input('请输入微信号:')

    user = {'name': name, 'phone': phone, 'wx': wx}
    user_list.append(user)
    print(user_list)


def check_index(i):
    if not i.isdigit():
        print('您输入的数字不合法')
        return False
    index = int(i)
    if index < 0 or index > len(user_list) - 1:
        print('您输入的名片序号不在有效范围内')
        return False

    return True


def del_user():
    index = input('请输入要删除的名片序号')

    if check_index(index):
        index = int(index)
    else:
        return

    ans = input('您是否真的要删除?(YES or NO):')
    if ans.upper() == 'YES':
        user_list.pop(index)
    print(user_list)


def change_user():
    index = input('请输入要修改的名片序号')

    if check_index(index):
        index = int(index)
    else:
        return

    user = user_list[index]
    print('您要修改的信息是:\nname:{name},phone:{phone},wx:{wx}'.format(**user))

    new_name = input('请输入新的名字:')
    for i in user_list:
        if i['name'] == new_name:
            print('修改失败,新名字已存在')
            return

    new_phone = input('请输入新的手机号:')
    new_wx = input('请输入新的微信号:')

    user['name'] = new_name
    user['phone'] = new_phone
    user['wx'] = new_wx
    print(user_list)


def select_user():
    name = input('请输入要查询的名片名字:')
    for i in user_list:
        if i['name'] == name:
            print('您查询到的信息是:\nname:{name},phone:{phone},wx:{wx}'.format(**i))
    else:
        print('输入的名字不存在')


def showall_user():
    print('序号    姓名   手机号   微信号')
    for i,user in enumerate(user_list):
        print(i,'\t'+'\t'+user['name'].ljust(5),user['phone'].ljust(5),user['wx'].ljust(5))


def exit_sys():
    ans = input('请确认您是否要退出--(YES or NO):')
    if ans.upper() == 'YES':
        print('您已成功退出,欢迎下次继续使用!!!')
        exit()
    elif ans.upper() == 'NO':
        print('返回主界面')
    else:
        print('您的输入有误,请输入yes或者no(大小写都可以)')


def start():
    while True:
        print("""------------------------------------------
            名片管理系统
1.添加名片              4.查询名片
2.删除名片              5.显示所有的名片
3.修改名片              6.退出系统
------------------------------------------
        """)

        operator = input('请输入要进行的操作(数字):')

        # 添加名片内容
        if operator == '1':
            add_user()
        elif operator == '2':
            del_user()
        elif operator == '3':
            change_user()
        elif operator == '4':
            select_user()
        elif operator == '5':
            showall_user()
        elif operator == '6':
            exit_sys()
        else:
            print('输入有误,请重新输入...')


start()

二、💯代码讲解

保存用户数据的列表

user_list = [
    {'name': '张三', 'phone': '123', 'wx': '321'},
    {'name': '李四', 'phone': '456', 'wx': '654'}
]  

创建一个列表里面先存放2组字典,有一个预设置值

添加用户的方法

def add_user():
    # 获取用户信息
    name = input('请输入姓名:')

    # 输入姓名后 验证是否重复
    for i in user_list:
        if i['name'] == name:
            print('此用户名已重复')
            return  # 这个可以直接结束整个函数

    phone = input('请输入手机号:')
    wx = input('请输入微信号:')

    # 保存数据
    user = {'name': name, 'phone': phone, 'wx': wx}
    user_list.append(user)
    print(user_list)
这个类是单独创建的一个方法,创建这个方法方便后面直接调用,不需要再写检测数字是否合法的方法

# 专门检测输入的数字是否合法
def check_index(i):
    if not i.isdigit():
        print('您输入的数字不合法')
        return False
    index = int(i)
    if index < 0 or index > len(user_list) - 1:
        print('您输入的名片序号不在有效范围内')
        return False

    return True
删除名片的方法,这里检测用户输入的数字是否合法直接调用 check_index方法即可

def del_user():
    index = input('请输入要删除的名片序号')

    if check_index(index):
        index = int(index)
    else:
        return

    ans = input('您是否真的要删除?(YES or NO):')
    if ans.upper() == 'YES':
        user_list.pop(index)
    print(user_list)
这里是修改名片的方法,需要注意的就是 展示信息的时候 用的是拆包这样方便 而且代码更优化

def change_user():
    index = input('请输入要修改的名片序号')

    if check_index(index):
        index = int(index)
    else:
        return

    user = user_list[index]
    # 展示修改的信息 使用拆包
    print('您要修改的信息是:\nname:{name},phone:{phone},wx:{wx}'.format(**user))

    new_name = input('请输入新的名字:')
    # 判断新的名字是否重复
    for i in user_list:
        if i['name'] == new_name:
            print('修改失败,新名字已存在')
            return

    new_phone = input('请输入新的手机号:')
    new_wx = input('请输入新的微信号:')

    user['name'] = new_name
    user['phone'] = new_phone
    user['wx'] = new_wx
    print(user_list)
这里写的是查询名片的方法,展示信息的时候也使用了 拆包的方法

def select_user():
    name = input('请输入要查询的名片名字')
    for i in user_list:
        if i['name'] == name:
            print('您查询到的信息是:\nname:{name},phone:{phone},wx:{wx}'.format(**user))
    else:
        print('输入的名字不存在')
这里写的是查询所有信息的方法

def showall_user():
    print('序号    姓名   手机号   微信号')
    for i,user in enumerate(user_list):
        print(i,'\t'+'\t'+user['name'].ljust(5),user['phone'].ljust(5),user['wx'].ljust(5))
这里写的是退出系统的方法

def exit_sys():
    ans = input('请确认您是否要退出--(YES or NO):')
    if ans.upper() == 'YES':
        print('您已成功退出,欢迎下次继续使用!!!')
        # return True  这个办法就是 在后面还要加一个条件判断 判断函数返回True就 break
        exit()
    elif ans.upper() == 'NO':
        print('返回主界面')
    else:
        print('您的输入有误,请输入yes或者no(大小写都可以)')
这里就是启动程序的方法,首先使用print进行布局 其次 就是输入1-6 调用上面的各个部分的功能的函数

def start():
    while True:
        print("""------------------------------------------
            名片管理系统
1.添加名片              4.查询名片
2.删除名片              5.显示所有的名片
3.修改名片              6.退出系统
------------------------------------------
        """)

        operator = input('请输入要进行的操作(数字):')

        # 添加名片内容
        if operator == '1':
            add_user()
        elif operator == '2':
            del_user()
        elif operator == '3':
            change_user()
        elif operator == '4':
            select_user()
        elif operator == '5':
            showall_user()
        elif operator == '6':
            exit_sys()
        else:
            print('输入有误,请重新输入...')

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2023年6月12日
下一篇 2023年6月12日

相关推荐