环境
Ubuntu 16.04 + python3.5
功能描述
主要目的在于刚学完Python的基础语法后进行实践,实现一个名片管理系统。通过终端的交互方式,实现“新建名片”、“显示全部”、“查找名片”、“修改/删除名片”的功能。
运行效果
代码实现
分为两个py文件实现。cards_main.py文件主要实现主逻辑;cards_tools.py主要实现对应的功能函数。cards_main.py代码如下:
#! /usr/bin/python3
import cards_tools
while True:
cards_tools.show_menus()
action = input("请选择操作功能:")
if action in ["1", "2", "3"]:
if action == "1":
cards_tools.new_card()
elif action == "2":
cards_tools.show_all()
elif action == "3":
cards_tools.search_card()
elif action == "0":
print("【欢迎再次使用名片管理系统!】")
break;
else:
print("输入错误,请重新输入")
cards_tools.py代码如下:
# 所有名片的记录
cards_list = []
def show_menus():
"""
显示菜单
:return:
"""
print("*" * 50)
print("欢迎使用【名片管理系统】V1.0")
print("")
print("1.新建名片")
print("2.显示全部")
print("3.查找名片")
print("")
print("0.退出系统")
print("*" * 50)
def new_card():
"""
新建名片
:return:
"""
print("-" * 50)
print("功能:新建名片")
# 1. 提示用户输入名片信息
name = input("请输入姓名:")
phone = input("请输入电话:")
qq = input("请输入QQ号码:")
email = input("请输入邮箱:")
# 2. 将用户信息保存到一个字典
card_dictionary = {"name": name,
"phone": phone,
"qq": qq,
"email": email}
# 3. 将字典添加到名片列表
cards_list.append(card_dictionary)
# 4. 提示成功添加名片信息
print("成功添加 %s 的名片信息" % card_dictionary["name"])
def show_all():
"""
显示全部
:return:
"""
print("-" * 50)
print("功能:显示全部")
# 判断是否存在名片
if len(cards_list) == 0:
print("提示:没有存在名片记录")
return
# for card_dictionary in cards_list:
# print(card_dictionary)
# 打印表头
for column in ["姓名", "电话", "QQ号码", "邮箱"]:
print(column, end="\t\t")
print("")
# 打印分割线
print("=" * 50)
for card_dictionary in cards_list:
print("%s\t\t%s\t\t%s\t\t%s" % (card_dictionary["name"],
card_dictionary["phone"],
card_dictionary["qq"],
card_dictionary["email"]))
def search_card():
"""
搜索名片
:return:
"""
print("-" * 50)
print("功能:搜索名片")
# 1. 输入需要搜索的姓名
find_name = input("请输入需要搜索的姓名:")
# 2. 遍历字典
for card_dictionary in cards_list:
if card_dictionary["name"] == find_name:
print("姓名\t\t电话\t\tQQ号码\t\t邮箱")
print("-" * 40)
print("%s\t\t%s\t\t%s\t\t%s" % (
card_dictionary["name"],
card_dictionary["phone"],
card_dictionary["qq"],
card_dictionary["email"]
))
print("-" * 40)
deal_card(card_dictionary)
break
else:
print("没有找到 %s 的信息" % find_name)
def deal_card(find_dictionary):
"""
删除名片
:param find_dictionary:
:return:
"""
action = input("请选择要执行的操作:"
"[1]修改 [2]删除 [0]返回上级菜单")
if action == "1":
find_dictionary["name"] = input_card_info(find_dictionary["name"], "请输入新的姓名[回车不修改]:")
find_dictionary["phone"] = input_card_info(find_dictionary["phone"], "请输入新的电话号码[回车不修改]:")
find_dictionary["qq"] = input_card_info(find_dictionary["qq"], "请输入新的QQ号码[回车不修改]:")
find_dictionary["email"] = input_card_info(find_dictionary["email"], "请输入新的邮箱地址[回车不修改]:")
print("%s 的名片修改成功" % find_dictionary["name"])
elif action == "2":
cards_list.remove(find_dictionary)
print("删除成功")
else:
return
def input_card_info(origin_value, tips_message):
"""
输入名片信息
:param origin_value:名片中的旧值
:param tips_message: 提示语
:return:
"""
new_value = input(tips_message)
if len(new_value) > 0:
return new_value
else:
return origin_value
个人感受
刚开始接触Python,不得不佩服Python的强大。用起来非常方便快捷,代码也十分简洁。个人觉得,Python非常适合作为入门编程的第一门语言。