主程序:

#! /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的更多相关文章

  1. python名片管理系统

    1.代码: (1)主程序 #!/usr/bin/env python # -*- coding: UTF-8 -*- import cards_tools # 无限循环,由用户主动决定什么时候退出循环 ...

  2. Python:名片管理系统(增加登录功能后出现问题,求教)

    我将一个简单的名片管理系统定义成了函数.. 2层. 一个登录界面: 一个名片管理系统使用界面: 逻辑是:登录成功=>跳入名片系统使用界面,同时,跳出登录界面,给出欢迎使用,程序结束. 此时问题来 ...

  3. Python基础综合运用——搭建名片管理系统

    综合应用 —— 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ************ ...

  4. python基础提高演练(名片管理系统的开发)

    综合应用 —— 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ********* ...

  5. 学习笔记之Python人机交互小项目二:名片管理系统

    继上次利用列表相关知识做了简单的人机交互的小项目名字管理系统后,当学习到字典时,老师又让我们结合列表和字典的知识,结合一起做一个名片管理系统,这里分享给在学习Python的伙伴! 1.不使用函数 1 ...

  6. Python:名片管理系统

    字符串和列表学完, 自己试着写了一个非常简单的名片管理系统, 新萌尝试, 大佬们不要喷, 修改名片的功能我偷了个懒, 因为我不知道怎么通过定义下标,然后通过下标来修改列表内的字符串 我的思路是,把用户 ...

  7. python程序—名片管理系统

    创建一个名片管理系统,实现增.删.改.查.四项功能 listcard = [] while True: print('**********欢迎来到名片管理系统**********') print(' ...

  8. python案例:实现一个函数版的名片管理系统

    本案例使用了自定义函数以及对字符串的常见操作.判断语句和循环语句等知识. 要求 必须使用自定义函数,完成对程序的模块化. 名片信息至少包括:姓名.电话.住址. 必须完成的功能:增.删.改.查.退出. ...

  9. Python练习 ——名片管理系统(增添,删除,查找,修改)

    需要注意的一个地方是,如果你用的版本是3.6的,那么下面的用到的所有从外界接收信息所用到的input()用input()就行了,如果是2.7版本,那么如果接收的是字符串要用raw_input()(将接 ...

随机推荐

  1. server中intersect的用法

    intersect 就像数学中的交集一样, select nam from  tb_table1 intersect select name from  tb_table2  查询的是两个数据集的交集 ...

  2. 【记录】新建Cordova项目出现ios-deploy找不到的问题

    按老流程 Cordova create helloApp Cordova platform add ios 之前一般这种操作之后就能有执行的iOS目录了,像这样   然后 Cordova build ...

  3. mapStruct笔记

    背景 mapStruct 是一个方便对象转换的工具,类似的工具还有 Dozer, BeanUtils. 实现 mapStruct的核心是在编译期生成基于转换规则的 Impl 文件,运行时直接调用 Im ...

  4. msp430入门编程17

    msp430中C语言的寄存器操作 msp430入门学习 msp430入门编程

  5. Codeforces 653B Bear and Compressing【DFS】

    题目链接: http://codeforces.com/problemset/problem/653/B 题意: 要求你构造一个长度为n的字符串使得通过使用m个操作,最终获得字符a.已知第i个操作将字 ...

  6. Delphi控件大全

    首先来大体上为控件分一下类,以方便我们后面的讨论.   但因为控件的种类太多,所以就粗略的分为如下几个类别∶   ---界面风格类   ---Shell外观类   ---Editor类   ---Gr ...

  7. HDU 1558

    输入线段的两个短点,如果线段相交那么他们属于一个集合,查看第i条线段所在的集合有几条线段. 好久没码码了,总是各种蠢. 首先找出两条直线的方程,求解相交点的横坐标,然后看是不是在线段内部. 没有注意题 ...

  8. vijos 2035 奇数偶数与绚丽多彩的数

    描述 Q先生是一个热爱学习的男孩子. 他认为一个 n 位的正整数 x 若能被称作是绚丽多彩的,一定要满足对于{1,3,5,7,9} 中任意一个奇数或者没有在 x 中出现,或者在 x 中出现了恰好奇数次 ...

  9. Wannafly挑战赛4

    A(枚举) =w= B(枚举) 分析: 枚举每一位,考虑每位贡献,就是相当于在一段区间内找有多少1在奇数位上,有多少个1在偶数位上,维护一下各自前缀和就行了 时间复杂度O(32n) C(签到) D(d ...

  10. Java并发编程,3分分钟深入分析volatile的实现原理

    volatile原理 volatile简介 Java内存模型告诉我们,各个线程会将共享变量从主内存中拷贝到工作内存,然后执行引擎会基于工作内存中的数据进行操作处理. 线程在工作内存进行操作后何时会写到 ...