python名片管理系统V2
主程序:
#! /usr/bin env python3
# -*- coding: utf-8 -*- # 项目三:
# 1、要求:编写一个名片管理系统,功能如下:
# 用户输入相对应的指令,实现对名片进行增、删、改、查的功能 # 2、分析
# 首先要定义python文件,一个是对程序进行操作的python文件(入口程序),另一个是作为工具的python文件,然后添加以下功能
# (1)增:
# 为增的功能做一个函数,当用户输入指令为增时,提供用户输入信息,如:姓名、年龄、工号、工资等,保存用户录入的信息。
# 当有多个用户录入信息时,录入的信息采用字典的方式保存每个用户的详细信息,再用列表来保存每个用户的信息
# (2)查:
# 为查看的功能做一个函数,当用户输入查看功能时,将所有用户的详细信息都逐一展示出来。
# (3)修改和删除:
# 先做一个搜索的功能的函数,用户只需要输入人名、工号,如果存在于字典中,则显示出被搜索到的人的所有详细信息,
# (3.1)添加删除功能,用户输入删除指令后,删除被搜索到的人的所有信息
# (3.2)添加修改功能,用户输入修改指令后,对被搜索到的人的详细信息逐一进行修改
import hw_02_名片管理系统工具 print("*" * 50)
print("欢迎进入名片管理系统")
print("*" * 50) while True:
print("本系统功能:【1】新增名片 【2】查看所有名片信息 【3】 搜索名片 [0] 退出")
user = input("请选择你的功能:") # 1,2,3针对名片的操作
if user in ["", "", ""]: # 新增名片
if user == "":
hw_02_名片管理系统工具.card_add()
print(hw_02_名片管理系统工具.cards_list)
# 显示所有
elif user == "":
hw_02_名片管理系统工具.show_all()
# 搜索名片
elif user == "":
hw_02_名片管理系统工具.card_serach() elif user == "":
print("欢迎再次使用【名片管理系统】")
break
else:
print("非法输入")
工具程序:
#!/usr/bin/env python3
# -*- coding: UTF-8 -*- # 记录所有的名片字典
cards_list = [] def card_add():
""" 新增名片 """
print("新增名片")
user_name = input("请输入你的姓名:")
user_phone = input("请输入你的电话:")
user_qq = input("请输入你的QQ:")
user_email = input("请输入你的邮箱:") # 用户输入的信息建立添加到名片字典
cards_dict = {
"name": user_name,
"phone": user_phone,
"qq": user_qq,
"email": user_email
} # 将名片字典添加到列表中
cards_list.append(cards_dict)
print("添加成功") def show_all():
"""显示所有名片""" print("-" * 50)
print("查看所有名片") # 判断是否存在名片记录
if len(cards_list) > 0: # 打印表头
for header in ["姓名","电话","QQ","email"]:
print(header,end="\t\t")
print("")
print("=" * 50) # 遍历名片列表依次输出字典信息
for card_dict in cards_list:
print("%s\t\t%s\t\t%s\t\t%s" %(
card_dict["name"],
card_dict["phone"],
card_dict["qq"],
card_dict["email"]
))
else:
print("还未添加名片,请按【1】新增名片") def card_serach():
"""
搜索名片
:return:
"""
print("搜索名片")
print("-" * 50)
user_find = input("请输入要查找的信息:")
# 遍历名片列表,查询要搜索的姓名,电话,qq,email,如果没有找到,要提示用户
for card_dict in cards_list:
if (card_dict["name"] == user_find or
card_dict["phone"] == user_find or
card_dict["qq"] == user_find or
card_dict["email"] == user_find
):
print("找到了")
print(card_dict) # 针对找到的名片信息执行修改和删除的操作
deal_card(card_dict)
break else:
print("没有找到") def deal_card(find_dict):
"""处理查找到的名片 :param find_dict: 查找到的名片
"""
user_input_info = input("请选择功能:【1】修改 【2】删除 ")
if user_input_info == "":
find_dict["name"] = input_info_card(find_dict["name"],"姓名:")
find_dict["phone"] = input_info_card(find_dict["phone"],"电话:")
find_dict["qq"] = input_info_card(find_dict["qq"],"QQ: ")
find_dict["email"] = input_info_card(find_dict["email"],"邮箱:")
print("修改名片成功!") elif user_input_info == "": cards_list.remove(find_dict)
print("删除成功")
else:
print("非法输入") def input_info_card(dict_value,prompt):
"""输入名片信息 :param dict_value: 字典中原有的值
:param prompt: 输入的提示信息
:return: 如果用户输入了内容,就返回内容,否则返回字典中原有的值
"""
user_change_info = input(prompt)
if user_change_info:
return user_change_info
else:
print("您输入的为空")
return dict_value
python名片管理系统V2的更多相关文章
- python名片管理系统
1.代码: (1)主程序 #!/usr/bin/env python # -*- coding: UTF-8 -*- import cards_tools # 无限循环,由用户主动决定什么时候退出循环 ...
- Python:名片管理系统(增加登录功能后出现问题,求教)
我将一个简单的名片管理系统定义成了函数.. 2层. 一个登录界面: 一个名片管理系统使用界面: 逻辑是:登录成功=>跳入名片系统使用界面,同时,跳出登录界面,给出欢迎使用,程序结束. 此时问题来 ...
- Python基础综合运用——搭建名片管理系统
综合应用 —— 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ************ ...
- python基础提高演练(名片管理系统的开发)
综合应用 —— 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ********* ...
- 学习笔记之Python人机交互小项目二:名片管理系统
继上次利用列表相关知识做了简单的人机交互的小项目名字管理系统后,当学习到字典时,老师又让我们结合列表和字典的知识,结合一起做一个名片管理系统,这里分享给在学习Python的伙伴! 1.不使用函数 1 ...
- Python:名片管理系统
字符串和列表学完, 自己试着写了一个非常简单的名片管理系统, 新萌尝试, 大佬们不要喷, 修改名片的功能我偷了个懒, 因为我不知道怎么通过定义下标,然后通过下标来修改列表内的字符串 我的思路是,把用户 ...
- python程序—名片管理系统
创建一个名片管理系统,实现增.删.改.查.四项功能 listcard = [] while True: print('**********欢迎来到名片管理系统**********') print(' ...
- python案例:实现一个函数版的名片管理系统
本案例使用了自定义函数以及对字符串的常见操作.判断语句和循环语句等知识. 要求 必须使用自定义函数,完成对程序的模块化. 名片信息至少包括:姓名.电话.住址. 必须完成的功能:增.删.改.查.退出. ...
- Python练习 ——名片管理系统(增添,删除,查找,修改)
需要注意的一个地方是,如果你用的版本是3.6的,那么下面的用到的所有从外界接收信息所用到的input()用input()就行了,如果是2.7版本,那么如果接收的是字符串要用raw_input()(将接 ...
随机推荐
- bzoj 3772 精神污染 主席树+dfs序
精神污染 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 637 Solved: 177[Submit][Status][Discuss] Descri ...
- Uva10294 Arif in Dhaka (置换问题)
扯回正题,此题需要知道的是置换群的概念,这点在刘汝佳的书中写的比较详细,此处不多做赘述.此处多说一句的是第二种手镯的情况.在下图中“左图顺时针转1个位置”和“右图顺时针旋转5个位置”是相同的,所以在最 ...
- Circling Round Treasures(codeforces 375c)
题意:要求在一张网格图上走出一条闭合路径,不得将炸弹包围进去,使围出的总价值减去路径长度最大. /* 类似于poj3182的做法,只不过出现了多个点,那么就用状态压缩的方法记录一个集合即可. */ # ...
- Codeforces917D. Stranger Trees
$n \leq 100$的完全图,对每个$0 \leq K \leq n-1$问生成树中与给定的一棵树有$K$条公共边的有多少个,答案$mod \ \ 1e9+7$. 对这种“在整体中求具有某些特性的 ...
- php责任链模式
php 责任链模式 又叫职责链模式.包含了一些命令对象和一些处理对象,每个处理对象决定它能处理那些命令对象,它也知道应该把自己不能处理的命令对象交下一个处理对象,该模式还描述了往该链添加新的处理对象的 ...
- 删除字符串中的"\U0000fffc"数据 textView添加图片 以及添加后属性失效的解决
背景:在实现textView的富文本时,如果添加一张图片后,如果直接发送textView的内容时,图片会被字符串“\U0000fffc”替换. 问题:如何删除“\U0000fffc”字符串:如何替换t ...
- ArrayList内部实现原理
数组在创建的时候长度是固定的,那么就有往ArrayList中不断添加对象的时候,那么ArrayList是如何管理这些数组的? ArrayList内部通过Object[]实现,我们通过分析ArrayLi ...
- SpringDataJPA入门2
SpringDataJPA实体概述 JPA提供了一种简单高效的方式来管理Java对象(POJO)到关系型数据库的映射,此类Java对象成为JPA实体或简称实体.实体通常与底层数据库中的单个关系表相关联 ...
- org.json.JSONException: A JSONObject text must begin with '{' at character 1 of {解决方法
在使用java读取一个本地的json配置文件的时候,产生了这个异常:org.json.JSONException: A JSONObject text must begin with '{' at c ...
- Linux-github 搭建静态博客
1.在Github上创建一个新的Repository 到你的github上 https://github.com去create a new repository命名为 github.myblog 2. ...