Python练手小项目(名片管理系统<第二部分>)

 衔接上一部分:Python练手小项目(名片管理系统<第一部分>)_独一无二的李狗蛋儿的博客-CSDN博客

开始进行操作函数的实现

首先完成添加函数:


user_list = [{'序号':1,'姓名': '的嘎达', '电话': '3123131', 'QQ号': '1313'},
             {'序号':2,'姓名': '李四爱吃鱼', '电话': '3123131', 'QQ号': '1313'}
             ]
counts = len(user_list)


def add_user():
    name =  input("请输入姓名:")
    #接收用户姓名后,立刻检索所有的用户,查看用户名是否重复
    for user in user_list:
        if user["姓名"] == name:
            print("添加失败,此用户名已存在")
            break
        #return 也可以
    else:
        tell = input("请输入电话号码:")
        qq = input("请输入QQ号:")
        count = counts + 1
        #保存用户的数据
        user = {"序号":count,"姓名": name , "电话": tell , "QQ号":qq}
        #将新创建的用户字典添加至user_list
        user_list.append(user)
        print(user_list)
    

1.首先在函数外部定义一个列表用于存储用户数据

2.使用for循环和if...else...条件控制语句对用户数据列表进行遍历和判断,查看用户名是否重复是否

3.如果没有此用户,接受用户输入的其他数据,并将其保存为一个字典类型的数据

4.将存有用户数据的字典添加至用户数据列表,即添加用户成功

删除用户函数

def deleter_user():
    index = input("请输入要删除的序号:")
    
    #如果输入的不是整数
    if not index.isdigit():
        print("输入的数字错误")
    else:
        index= int(index)
        if index < 0 or index > len(user_list)-1:
            print("输入的数字不在有效范围内")
        else:
            answer = input("您是否确定删除?(确定1,不确定2):")
            if answer.lower() == "1":
            #列表删除数据的方法:del、pop(根据下标删除)  remove(指定元素删除) clear
                user_list.pop(index)
                #user_list.remove(user_list[index])
                print(user_list)
            

1.根据输入用户输入的序号,判断序号是否违规输入

2.使用pop方法进行删除操作

修改操作函数

def modify_user():
    print("修改名片")
    index = input("请输入要删除的序号:")
    
    user = user_list[index]
    print("请选择您要修改的信息:\n姓名:{姓名},电话:{电话},QQ号:{QQ号}".format(**user))     
    new_name = input("请输入新的姓名:")
    for u in user_list:
        if u['姓名'] == new_name:
            print('不允许同名')
            return
    new_tell = input("请输入新的手机号:")
    new_qq = input("请输入新的QQ号:")
    
    user['姓名'] = new_name
    user['电话'] = new_tell
    user['QQ号'] = new_qq
    print(user_list)

1.用户输入需要修改的序号

2.将输入的序号做下标获取具体的用户

3.重置用户信息

查询操作函数

def search_user():
    print("查询名片")
    names = input("请输入要查询名片的名字:")
    for user in user_list:
        if user['姓名'] == names:
           print("查询到的信息如下:\n姓名:{姓名},电话:{电话},QQ号:{QQ号}".format(**user))
           return
    else:
        print("用户不存在")

1.用户输入的名字

2.遍历用户列表中的用户字典

3.如果用户字典中的名字与用户输入的名字相同,则打印信息

查询所有用户的函数

def show_all():
    print("显示所有名片")
    print("序号------姓名------手机号------QQ号")
    for user in user_list:
        print(user['序号'],user['姓名'].ljust(10,'-'),user['电话'],user['QQ号'])

遍历打印所有用户信息

退出程序函数

def exit_system():
    answer = input("您是否确定退出(是按1,不是按2):")
    if answer == "1":
         print("退出")
         return True
         exit()
    

exit()退出程序

完整代码:

user_list = [{'姓名': '的嘎达', '电话': '3123131', 'QQ号': '1313'},
             {'姓名': '李四爱吃鱼', '电话': '3123131', 'QQ号': '1313'}
             ]


def add_user():
    name =  input("请输入姓名:")
    #接收用户姓名后,立刻检索所有的用户,查看用户名是否重复
    for user in user_list:
        if user["姓名"] == name:
            print("添加失败,此用户名已存在")
            break
        #return 也可以
    else:
        tell = input("请输入电话号码:")
        qq = input("请输入QQ号:")
        #保存用户的数据
        user = {"姓名": name , "电话": tell , "QQ号":qq}
        #将新创建的用户字典添加至user_list
        user_list.append(user)
        print(user_list)
    
def check_index(i):
    if not i.isdigit() :
        print('输入的数字不合法')
        return  False
    i = int(i)
    if i < 0 or i > len(user_list)-1:
        print("输入的数字不在有效范围内")
        return False 
    
    return True
          
def deleter_user():
    index = input("请输入要删除的序号:")
    
    #如果输入的不是整数
    if not index.isdigit():
        print("输入的数字错误")
    else:
        index= int(index)
        if index < 0 or index > len(user_list)-1:
            print("输入的数字不在有效范围内")
        else:
            answer = input("您是否确定删除?(确定1,不确定2):")
            if answer.lower() == "1":
            #列表删除数据的方法:del、pop(根据下标删除)  remove(指定元素删除) clear
                user_list.pop(index)
                #user_list.remove(user_list[index])
                print(user_list)
            
def modify_user():
    print("修改名片")
    index = input("请输入要删除的序号:")
    if not check_index(index):
        return
    
    index = int(index)
    user = user_list[index]
    print("请选择您要修改的信息:\n姓名:{姓名},电话:{电话},QQ号:{QQ号}".format(**user))     
    new_name = input("请输入新的姓名:")
    for u in user_list:
        if u['姓名'] == new_name:
            print('不允许同名')
            return
    new_tell = input("请输入新的手机号:")
    new_qq = input("请输入新的QQ号:")
    
    user['姓名'] = new_name
    user['电话'] = new_tell
    user['QQ号'] = new_qq
    print(user_list)
    
def search_user():
    print("查询名片")
    names = input("请输入要查询名片的名字:")
    for user in user_list:
        if user['姓名'] == names:
           print("查询到的信息如下:\n姓名:{姓名},电话:{电话},QQ号:{QQ号}".format(**user))
           return
    else:
        print("用户不存在")
    
def show_all():
    print("显示所有名片")
    print("序号------姓名------手机号------QQ号")
    for i,user in enumerate(user_list):
        print(i,user['姓名'].ljust(10,'-'),user['电话'],user['QQ号'])
        #ljust()  填充

def exit_system():
    #print("退出系统")
    answer = input("您是否确定退出(是按1,不是按2):")
    # if answer == "1":
    #     print("退出")
    #     return True
    return answer == "1"
    #answer 等于1 相当于True
    #也可以使用exit()内置函数退出整个程序

def start():
    while True:
        print("""------------------------------\n
              名片管理系统1.0\n
              1:添加名片\n
              2:删除名片\n
              3:修改名片\n
              4:查询名片\n
              5:查询所有名片\n
              6:退出系统\n
    ------------------------------""")
        operator = input("请输入您要进行的操作(数字):")
        if operator == "1":
            add_user()
        elif  operator == "2":
            deleter_user()
        elif operator == "3":
            modify_user()
        elif operator == "4":
            search_user()
        elif operator == "5":
            show_all()
        elif operator == "6":
            result = exit_system()
            if result:
                print("退出系统")
                break
        else:
            print("请重新输入")
    
start()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值