Python-名片管理器
# 需要完成的基本功能:
# 添加名片
# 删除名片
# 修改名片
# 查询名片
# 退出系统
# 程序运行后,除非选择退出系统,否则重复执行功能
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-名片管理器的更多相关文章
- python名片管理
python名片管理是我根据视频自己敲敲的代码,后续学习会持续更新 代码 card_main.py import card_tools # 无限循环,由用户决定什么时候退出 while True: # ...
- python 上下文管理器
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 上下文管理器(context manager)是Python2.5开始支持的一种语 ...
- Python 上下文管理器和else块
最终,上下文管理器可能几乎与子程序(subroutine)本身一样重要.目前,我们只了解了上下文管理器的皮毛--Basic 语言有with 语句,而且很多语言都有.但是,在各种语言中 with 语句的 ...
- Python上下文管理器
在Python中让自己创建的函数.类.对象支持with语句,就实现了上线文管理协议.我们经常使用with open(file, "a+") as f:这样的语句,无需手动调用f.c ...
- python上下文管理器ContextLib及with语句
http://blog.csdn.net/pipisorry/article/details/50444736 with语句 with语句是从 Python 2.5 开始引入的一种与异常处理相关的功能 ...
- Python上下文管理器 with
对于系统资源的操作,如:文件操作.数据库操作等,我们往往打开文件.连接数据库后忘了将其close掉,这时就可能会引发异常,因此我们常用的做法是: # coding:utf-8 f = open(&qu ...
- 【Python系列】Python包管理器pip
缘起 这段时间忙着给朋友搞事,忙了好长一段时间,木有写博客很长时间了.之间做了两个东西,一个是邮件自动发送脚本,一个是数据处理软件.其中,在做数据处理软件的时候使用到了非Python系统库,是两个第三 ...
- Python上下文管理器(Context managers)
上下文管理器(Context managers) 上下文管理器允许你在有需要的时候,精确地分配和释放资源. 使用上下文管理器最广泛的案例就是with语句了.想象下你有两个需要结对执行的相关操作,然后还 ...
- python上下文管理器细读
test 1 上下文管理器,将生成器转化为上下文管理器 import contextlib @contextlib.contextmanager def a(): print(1) yield pri ...
- 吃透Python上下文管理器
什么是上下文管理器? 我们常见的with open操作文件,就是一个上下文管理器.如: with open(file, 'rb') as f: text = f.read() 那上下文管理器具体的定义 ...
随机推荐
- Day17_106_IO_利用Buffered和BufferWriter完成复制
利用Buffered和BufferWriter完成复制 代码示例: 用BufferedReader 和 BufferWriter完成复制 import java.io.*; public class ...
- Day16_98_IO_一边读一边写
一边读一边写 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutp ...
- Day10_53_Collections.synchronizedList() 将Arraylist集合转换为线程安全的集合
将Arraylist集合转换为线程安全的集合 import java.util.ArrayList; import java.util.Collections; import java.util.Li ...
- Day09_47_Map
Map 集合 Map集合** 继承关系** <interface>: Map(接口)<---HashMap(class)/HashTable(class)/SortedMap(子接口 ...
- 2021软工-CSDN APP分析
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 案例分析作业要求 我在这个课程的目标是 提升软件开发能力,提高团队协作能力 这个作业在哪个具体方面 ...
- 记一次 .NET 某教育系统API 异常崩溃分析
一:背景 1. 讲故事 这篇文章起源于 搬砖队大佬 的精彩文章 WinDBg定位asp.net mvc项目异常崩溃源码位置 ,写的非常好,不过美中不足的是通览全文之后,总觉得有那么一点不过瘾,就是没有 ...
- 从苏宁电器到卡巴斯基第12篇:我在苏宁电器当营业员 IV
卖iPhone首先是需要接受培训的 像iPhone这样的重点产品,并不是只要选好了人(营业员),说卖就能卖的,在正式销售之前需要接受厂家的培训.如果说人事关系或者产品源隶属于苹果,那么是由苹果中国公司 ...
- Android APK程序的smali动态调试
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/71250622 一.Apktool的下载和安装 Apktool是Android逆向分 ...
- 【maven】You may use+to add a project ro to let the plugin find all pom.xml files...
错误显示 解决方法 点击pom.xml,再Add as Maven Project 如果还不能解决,点击idea的log 复制报错(技巧:可以先将idea.log删除,比较好定位) Caused by ...
- STL实现的底层数据结构简介
STL实现的底层数据结构简介 C++ STL 的实现: 1.vector 底层数据结构为数组 ,支持快速随机访问 2.list 底层数据结构为双向链表,支持快速增删 3.deque 底层数 ...