衔接上一部分: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_listuser_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(指定元素删除) clearuser_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('不允许同名')returnnew_tell = input("请输入新的手机号:")new_qq = input("请输入新的QQ号:")user['姓名'] = new_nameuser['电话'] = new_telluser['QQ号'] = new_qqprint(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))returnelse: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 Trueexit()

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_listuser_list.append(user)print(user_list)def check_index(i):if not i.isdigit() :print('输入的数字不合法')return  Falsei = int(i)if i < 0 or i > len(user_list)-1:print("输入的数字不在有效范围内")return False return Truedef 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(指定元素删除) clearuser_list.pop(index)#user_list.remove(user_list[index])print(user_list)def modify_user():print("修改名片")index = input("请输入要删除的序号:")if not check_index(index):returnindex = 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('不允许同名')returnnew_tell = input("请输入新的手机号:")new_qq = input("请输入新的QQ号:")user['姓名'] = new_nameuser['电话'] = new_telluser['QQ号'] = new_qqprint(user_list)def search_user():print("查询名片")names = input("请输入要查询名片的名字:")for user in user_list:if user['姓名'] == names:print("查询到的信息如下:\n姓名:{姓名},电话:{电话},QQ号:{QQ号}".format(**user))returnelse: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 Truereturn answer == "1"#answer 等于1 相当于True#也可以使用exit()内置函数退出整个程序def start():while True:print("""------------------------------\n名片管理系统1.0\n1:添加名片\n2:删除名片\n3:修改名片\n4:查询名片\n5:查询所有名片\n6:退出系统\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("退出系统")breakelse:print("请重新输入")start()

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

  1. Python练手小项目

    一.画爱心表白 1.图形都是由一系列的点(X,Y)构成的曲线,由于X,Y满足一定的关系,所以我们就可以建立模型,建立表达式expression,当满足时,两个for循环(for X in range: ...

  2. 学python适合做什么生意_吹爆这8个Python练手小项目,轻松易学

    知识本质上只是信息,我们最需要的知道的是,学以致用,做到什么程度,才是我们学习的目的所在,所以练手!实干!才是最重要的!以下就是今日推荐的简单好实现练手神器! 1. Kaggle 实战之波士顿房价预测 ...

  3. JAVA入门初学者练手小项目——图书管理系统

    一.登录操作(用户,管理员) 注册操作 user使用者类:客户customer,管理员admin两个子类 客户:继承自使用者 权利有 借书 还书 客户的资料信息要存放在user.txt里面, 管理员: ...

  4. python项目作业_期末作业.py · 光辉/python练手小项目 - Gitee.com

    # 期末考试 # 题1 ''' 在这一个月,我们学了python基础,简单总结下,有六种数据类型和函数. (1)请从str,list,dict,set选出 1 种数据类型,进行归纳总结. (2)请整理 ...

  5. Python练手小项目——随机加减法生成器

    为了让外甥女练习算术,用python给她写了个自动出加减法的小程序. 该程序使用了文字转语音的库pyttsx,程序运行时,会有相对应的语音提示.pyttsx文档 为了防止小孩乱按键盘,导致非法输入,我 ...

  6. Python练手小项目(5)斐波那契数列及其曲线的绘制

    斐波那契数列,也叫黄金分割数列.兔子繁殖数列等,其实很简单,数列的前几项是这样的:1.1.2.3.5.8.13.21.34.--从第三项开始,后面的一项等于前面两项之和,在科学领域有很多应用,在自然界 ...

  7. Python练手小项目(11)用户名密码验证的初步探索

    1.先做一个基础版:用字符串存储一个密码,与用户输入的字符进行匹配,用for循环限制输入次数为3次,完成后打印验证结果. mima='123456' for i in range(3):passwor ...

  8. Python练手小项目(4)计算体重身高指数BMI

    身体质量指数,是BMI(Body Mass Index [4]  )指数,简称体质指数,是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准. 计算公式为:BMI=体重÷身高2.(体重单位:千克:身高 ...

  9. Python练手小项目(12)斐波那契曲线的改进

    在第5课中我们简单的绘制了斐波那契数列的曲线,本节我们对曲线进行一些小小的改进,首先是用一个正方形把每一段曲线框起来,然后为每一段曲线添加一个尺寸标注. #斐波那契的改进20220518: impor ...

  10. Python练手小项目(6)随机取红黑球并计算概率

    1.一只不透明的袋子里装有两个小球,分别为红色和黑色,除此之外小球的重量.材质.手感等完全一致,随机从袋子里拿出一只小球,会是什么颜色? import random bags=["red&q ...

最新文章

  1. Android 占位符 %1$s %1$d
  2. 自学it18大数据笔记-第三阶段Spark-day04——会持续更新……
  3. python自动化办公都能做什么菜-Python 让我再次在女同学面前长脸了!(真实案例)...
  4. JS三种简单排序算法
  5. themeleaf跳转锚链接
  6. 2、Spring Cloud - 入门概述
  7. 实录 | 平安人寿资深算法工程师谢舒翼:智能问答系统探索与实践
  8. Java中的并发工具类:Semaphore基本理解和底层实现
  9. php list() ecah(),PHP each()与list()函数
  10. 反诈题库---合计100道(解析版最新)
  11. windows 无法加载DLL “***.dll”:找不到指定的模块
  12. 《算法和数据结构》学习路线指引
  13. 北大先修课 计算机,北大先修课
  14. 新出炉彩色游戏——炸弹战争1.0版
  15. nowcoder:[编程题] 头条校招(贪心)
  16. QT 中英文切换-国际化(解决部分翻译不起作用的问题)
  17. html上传头像及预览,js实现头像上传并且可预览提交
  18. rs232读取智能电表_智能电表防窃电原理 偷电为什么会被发现
  19. Bootstrap3基础 table-responsive 响应式表格
  20. 用 MAX7219 点亮 8*8点阵显示屏(倒不如说是 8*8 LED模块)

热门文章

  1. 中国海洋大学计算机系实习报告,中国海洋大学海洋学实习报告.doc
  2. 2020年IT技术的发展趋势!
  3. 计算机派位志愿填报技巧,小升初电脑派位操作流程详解
  4. Python计算二项分布教程
  5. Scheme 语言概要(下)
  6. 阻止浏览器冒泡和默认行为
  7. wallpaper 壁纸提取
  8. TYVJ1356(腾讯大战360)
  9. IPD解读--华为500强的研发第一名,除了钱还有IPD
  10. 各种编码格式(非常经典)