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()(将接 ...
随机推荐
- [luoguP2129] L国的战斗续之多路出击(模拟 || 矩阵)
传送门 1.模拟 easy #include <cstdio> #define N 500001 int n, m; int X[N], Y[N], x[N], y[N], a = 1, ...
- 数列分段Section II(二分)
洛谷传送门 输入时处理出最小的答案和最大的答案,然后二分答案即可. 其余细节看代码 #include <iostream> #include <cstdio> using na ...
- POJ3621 Sightseeing Cows【最短路】
题目大意:在一个无向图里找一个环,是的点权和除以边权和最大 思路:UVA11090姊妹题 事实上当这题点权和都为1时就是上一题TUT #include <stdio.h> #include ...
- 【dp】HDU 1421 搬寝室
http://acm.hdu.edu.cn/showproblem.php?pid=1421 [题意] 给定n个数,要从n个数中选择k个二元组{x,y},最小化sum{(x-y)^2} 2<=2 ...
- 如何在Eclipse中生成Native类对应的JNI的.h文件
1 致谢 感谢super_level网友 他的博客写的很清楚 给了我很多帮助 链接如下:http://blog.csdn.net/super_level/article/details/2124353 ...
- 【BZOJ4475】子集选取(计数)
题意: 思路: #include<cstdio> #include<cstdlib> #include<iostream> #include<algorith ...
- FastDFS+nginx+php的完整应用[转储]
FastDFS功能简介: FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以 ...
- Linux后台运行命令nohub输出pid到文件(转)
用nohup可以启动一个后台进程.让一个占用前台的程序在后台运行,并静默输出日志到文件: nohup command > logfile.txt & 但是如果需要结束这个进程,一般做法是 ...
- curl的使用(from 阮一峰)
1. http://www.ruanyifeng.com/blog/2011/09/curl.html 2. https://curl.haxx.se/docs/httpscripting.h ...
- 一例Ext4文件系统fsck后损坏的修复过程
1.故障发生背景 Ext4文件系统没有umount下来,之后做了fsck操作检查一致性,结果导致Ext4文件mount不上(有时也会表现为导致目录变成了文件). 报错提示信息:mount: wrong ...