主程序:

#! /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. 如何在非localhost情况下访问Istio中的服务UI

    在使用Istio时经常会遇到需要用localhost访问服务UI才能看到相关的一些数据 但对于远程连接的时候使用localhost并不方便,所以需要修改一下它的部署文件,将原先的cluster IP改 ...

  2. ssh 监听多个端口

    修改sshd的配置文件 默认位置:/etc/ssh/sshd_config 注释掉 Port 这行   然后添加 ListenAddress 行 e.g:  ListenAddress 192.168 ...

  3. POJ 2115 C Looooops【数论】

    很容易看出来一个同余式,说到底是解一个线性同余方程,计算机解通常有拓展欧几里得和欧拉定理两种算法,参照去年的NOIP水题,问题是这题数据范围是2^32所以要int64 TAT #include< ...

  4. 洛谷P3094 [USACO13DEC]假期计划Vacation Planning

    题目描述 有N(1 <= N <= 200)个农场,用1..N编号.航空公司计划在农场间建立航线.对于任意一条航线,选择农场1..K中的农场作为枢纽(1 <= K <= 100 ...

  5. hihoCoder #1067 : 最近公共祖先·二 [ 离线LCA tarjan ]

    传送门: #1067 : 最近公共祖先·二 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上上回说到,小Hi和小Ho用非常拙劣——或者说粗糙的手段山寨出了一个神奇的网站 ...

  6. sed命令解析[转载]

    1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下 ...

  7. 前端学习之- Ajax

    Ajax:页面不做刷新,直接将数据悄悄提交到后台,然后通过回调函数处理返回结果. $.Ajax({ # 提交到后台 url:'/host', # 提交到哪里 type:'POST' # 提交方式 da ...

  8. asterisk 问题

    Q:SIP可以呼通,但听不到声音A:一般是NAT问题造成.如果Asterisk处在NAT的后面,则Asterisk的配置如下: ------------------------------------ ...

  9. Spring MVC的Hello World例子

    以下内容引用自http://wiki.jikexueyuan.com/project/spring/mvc-framework/spring-mvc-hello-world-example.html: ...

  10. 【Nginx】处理用户请求

    实际处理请求的方法ngx_http_mytest_handler(在配置配置项的回调方法中被调用(用于解析配置项))将接收一个ngx_http_request_t类型的参数,返回一个ngx_int_t ...