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()(将接 ...
随机推荐
- HDU 1102 Kruscal算法
题目大意:给定村庄的数量,和一个矩阵表示每个村庄到对应村庄的距离,矩阵主对角线上均为1 在给定一个数目Q,输入Q行之间已经有通道的a,b 计算还要至少修建多少长度的轨道 这道题目用Kruscal方法进 ...
- 【模板】prim的heap优化
简单的代码.. 时间复杂度为O((n + m)logn) 大部分情况下还是跑不过kruskal的,慎用. #include <cstdio> #include <queue> ...
- 常见的 Android 新手误区
在过去十年的移动开发平台中,作为资深的移动开发人员,我们认为Android平台是一个新手最广为人知的平台.它不仅是一个廉价的工具,而且有着良好的 开发社区,以及从所周知的编程语言(Java),使得开发 ...
- Error:Uninitialized object exists on backward branch 70 Exception Details:
网上下载了一个demo,编译出现如下错误: Gradle sync failed: Uninitialized object exists on backward branch 70 Exceptio ...
- hihoCoder #1055 : 刷油漆 [ 树形dp ]
传送门 结果:Accepted 提交时间:2015-05-11 10:36:08 #1055 : 刷油漆 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到 ...
- django学习之- modelForm
ModelForm(耦合很强) 可以实现 1:数据库操作 2:数据验证 使用地方:1:小型项目,2:自定制jdango admin 功能: 1:可以生成html标签:class Meta... 2:m ...
- T2627 村村通 codevs
http://codevs.cn/problem/2627/ 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描述 Description 农民约翰被选为他们 ...
- Using DTrace to Profile and Debug A C++ Program
http://www.oracle.com/technetwork/server-storage/solaris/dtrace-cc-138561.html
- 微信小程序实战之 goods(订餐页)
项目目录: 模拟数据: utils / data.js function getSData() { var data = [ { "name": "热销榜", ...
- POJ3264Balanced Lineup(最基础的线段树)
採用一维数组建树. (由于一维数组建的是全然二叉树,时间上比用孩子节点指针建树慢.只是基本能够忽略=-=) #include<iostream> #include<cstdio> ...