# 需要完成的基本功能:
# 添加名片
# 删除名片
# 修改名片
# 查询名片
# 退出系统
# 程序运行后,除非选择退出系统,否则重复执行功能
list_info = [] # 创建一个空列表 # 打印菜单
def menu():
print("---------------------------")
print(" 名片管理系统")
print(" 1:添加名片")
print(" 2:删除名片")
print(" 3:修改名片")
print(" 4:查询名片")
print(" 5:显示所有名片")
print(" 6:退出系统")
print("---------------------------") # 添加名片
def add():
global list_info
name = input('请输入你的姓名:')
position = input('请输入你的职务:')
number = int(input('请输入你的手机号:'))
company_name = input('请输入你的公司名称:')
company_address = input('请输入你的公司地址:') for temp_info in list_info:
if temp_info['姓名'] == name:
print("此用户名已经被占用,请重新输入")
return # 如果一个函数只有return就相当于让函数结束,没有返回值
# 创建字典,存储名片信息
information = {
'姓名': name,
'职务': position,
'手机号': number,
'公司名称': company_name,
'公司地址': company_address,
}
# 向列表中添加这个字典
list_info.append(information) # 删除名片
def delete():
global list_info del_num = int(input("请输入要删除的序号:"))
if 0 <= del_num < len(list_info):
del_flag = input("你确定要删除么?yes or no")
if del_flag == "yes":
del list_info[del_num]
else:
print("输入序号有误,请重新输入") # 修改名片
def alter():
global list_info modify_num = int(input("请输入要修改的序号:"))
if 0 <= modify_num < len(list_info):
print("你要修改的信息是:")
print("姓名:%s, 职务:%s, 手机号:%s, 公司名称:%s, 公司地址:%s" % (list_info[modify_num]['姓名'],
list_info[modify_num]['职务'], list_info[modify_num]['手机号'],
list_info[modify_num]['公司名称'], list_info[modify_num]['公司地址']))
list_info[modify_num]['姓名'] = input("请输入新的姓名:")
list_info[modify_num]['职务'] = input("请输入新的职务:")
list_info[modify_num]['手机号'] = input("请输入新手机号:")
list_info[modify_num]['公司名称'] = input("请输入新公司名称:")
list_info[modify_num]['公司地址'] = input("请输入新公司地址:")
else:
print("输入序号有误,请重新输入") # 查询名片
def query():
query_name = input('请输入你要查询的名片名字:')
for temp_info in list_info:
if temp_info['姓名'] == query_name:
print("查询到的信息如下:")
print("姓名:%s, 职务:%s, 手机号:%s, 公司名称:%s, 公司地址:%s" % (
temp_info['姓名'], temp_info['职务'], temp_info['手机号'], temp_info['公司名称'], temp_info['公司地址']))
break
else:
print("没有您要找的信息....") # 显示所有名片
def traverse():
print("序号\t姓名\t\t职务\t\t手机号\t\t公司名称\t\t公司地址")
i = 0
for temp in list_info:
# temp是一个字典
print("%d\t%s\t\t%s\t\t%s\t\t%s\t\t%s" % (i, temp['姓名'], temp['职务'], temp['手机号'], temp['公司名称'], temp['公司地址']))
i += 1 def main():
while True:
menu()
digital = int(input('请输入相对应的功能数字:'))
if digital == 1:
add()
elif digital == 2:
delete()
elif digital == 3:
alter()
elif digital == 4:
query()
elif digital == 5:
traverse()
elif digital == 6:
break
else:
print('请输入错误,请重新输入') main()

Python-名片管理器的更多相关文章

  1. python名片管理

    python名片管理是我根据视频自己敲敲的代码,后续学习会持续更新 代码 card_main.py import card_tools # 无限循环,由用户决定什么时候退出 while True: # ...

  2. python 上下文管理器

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 上下文管理器(context manager)是Python2.5开始支持的一种语 ...

  3. Python 上下文管理器和else块

    最终,上下文管理器可能几乎与子程序(subroutine)本身一样重要.目前,我们只了解了上下文管理器的皮毛--Basic 语言有with 语句,而且很多语言都有.但是,在各种语言中 with 语句的 ...

  4. Python上下文管理器

    在Python中让自己创建的函数.类.对象支持with语句,就实现了上线文管理协议.我们经常使用with open(file, "a+") as f:这样的语句,无需手动调用f.c ...

  5. python上下文管理器ContextLib及with语句

    http://blog.csdn.net/pipisorry/article/details/50444736 with语句 with语句是从 Python 2.5 开始引入的一种与异常处理相关的功能 ...

  6. Python上下文管理器 with

    对于系统资源的操作,如:文件操作.数据库操作等,我们往往打开文件.连接数据库后忘了将其close掉,这时就可能会引发异常,因此我们常用的做法是: # coding:utf-8 f = open(&qu ...

  7. 【Python系列】Python包管理器pip

    缘起 这段时间忙着给朋友搞事,忙了好长一段时间,木有写博客很长时间了.之间做了两个东西,一个是邮件自动发送脚本,一个是数据处理软件.其中,在做数据处理软件的时候使用到了非Python系统库,是两个第三 ...

  8. Python上下文管理器(Context managers)

    上下文管理器(Context managers) 上下文管理器允许你在有需要的时候,精确地分配和释放资源. 使用上下文管理器最广泛的案例就是with语句了.想象下你有两个需要结对执行的相关操作,然后还 ...

  9. python上下文管理器细读

    test 1 上下文管理器,将生成器转化为上下文管理器 import contextlib @contextlib.contextmanager def a(): print(1) yield pri ...

  10. 吃透Python上下文管理器

    什么是上下文管理器? 我们常见的with open操作文件,就是一个上下文管理器.如: with open(file, 'rb') as f: text = f.read() 那上下文管理器具体的定义 ...

随机推荐

  1. 字符串转成KB,MB, GB

    import java.text.DecimalFormat; public class SizeUtil { public static String GetImageSize(String ima ...

  2. Salesforce学习之路(五)role hierarchy & sharing

    1. Role Hierarchy 在私有或者混合模型中,如果在organization-wide defaults设置某个对象为Private,那么对象的记录只有拥有者可以查看.但是,role hi ...

  3. JAVAEE_Servlet_22_Cookie实现十天内免登录

    Cookie实现十天内免登录 代码: - CheckLogin 查看是否获取到了Cookie,如果获取到了连接数据库验证Cookie发过来的用户名和密码,如果没有获取到Cookie信息,那么就跳转到登 ...

  4. Day17_104_IO_BufferReader接收用户输入

    BufferReader接收用户输入 **标准输入\输出流 java.lang.System** - static InputStream in - static PrintStream out im ...

  5. 数据结构之栈(JavaScript描述)

    栈数据结构   栈是一种遵从后进先出原则的有序集合.新添加或待删除的元素都保存在栈的同一端,称为栈顶,另一端就叫栈底.在栈内,锌元素都靠近栈顶,救援都接近栈底 类似栈的例子   栈也被用在编程语言你的 ...

  6. DDD实践反思

    某大型互联网公司于2019年开始在XX中台财务域进行DDD实践.事后回顾,整体并没有达到预期的效果,个人也做了很多的反思和总结,形成此文. 1. 背景 为什么当时要实践DDD?其中的缘由比较复杂,可以 ...

  7. G - Number Transformation(BFS+素数)

    In this problem, you are given an integer number s. You can transform any integer number A to anothe ...

  8. PHP大牛笔记收藏

    PHP大牛笔记收藏 Do not use PHP references 未完,待续

  9. php与mysql 绑定变量和预定义处理

    非select 语句(没有结果集的) 1.建立连接数据库 $mysqli=new mysqli("localhost","root","", ...

  10. Windows核心编程 第七章 线程的调度、优先级和亲缘性(下)

    7.6 运用结构环境 现在应该懂得环境结构在线程调度中所起的重要作用了.环境结构使得系统能够记住线程的状态,这样,当下次线程拥有可以运行的C P U时,它就能够找到它上次中断运行的地方. 知道这样低层 ...