通过一周的自学python,结合老师的讲解,做出来一个简单的名片管理系统。接下来结合运行界面介绍下。
第一部分:系统界面
此处使用的Ubuntu系统演示
一个很简单的系统,就3个功能,初学者哈,大家不要嫌弃,至少有个壳子你在往里面添加就可以,后续添加再更新。
1.新建功能
操作成功回自己再次回到主界面
2.显示功能
3.查询功能
查询功能应该算是这里面相对来说最难实现的
接下来可以对查询的表进行修改或者删除,或者不改变
如果您需要改变,就输入,不需要就直接回车。
删除这里就不演示了, 基本上这个简单的系统就是这个样子。
接下来直接上代码。
**cards_main.py**
import
cards_tools
#无限循环,由用户操作决定啥时候退出系统
while
True
:
#TODO 显示功能菜单
action_str
=
input
(
"请输入希望执行的操作:"
)
print
(
"你选择的操作是【%s】"
%
action_str
)
#1, 2, 3针对名片的操作
if
action_str
in
[
"1"
,
"2"
,
"3"
]
:
#如果不想立即编写分支内部
#新增名片
if
action_str
==
"1"
:
cards_tools
.
new_cards
(
)
#显示全部
elif
action_str
==
"2"
:
cards_tools
.
show_all
(
)
#查询名片
elif
action_str
==
"3"
:
cards_tools
.
search_card
(
)
# 可以使用pass占位符,保证代码结构正确
#0 退出系统
elif
action_str
==
"0"
:
print
(
"欢迎再次使用【名片管理系统】"
)
break
;
#pass
#其他输入错误,提示用户
else
:
print
(
"您输入的不正确,请重新选择"
)
**cards_tools.py**
#记录所有的名片字典
card_list
=
[
]
def
show_menu
(
)
:
"""显示菜单"""
print
(
"*"
*
50
)
print
(
"欢迎使用【名片管理系统】V 1.0"
)
print
(
""
)
print
(
"1.新增名片"
)
print
(
"2.展示全部"
)
print
(
"3.搜索名片"
)
print
(
""
)
print
(
"0.退出系统"
)
return
(
"*"
*
50
)
#
print
(
show_menu
(
)
)
def
new_cards
(
)
:
"""新增名片"""
print
(
"-"
*
50
)
print
(
"新增名片"
)
#1.提示用户输入信息
name_str
=
input
(
"请输入姓名:"
)
phone_str
=
input
(
"请输入电话:"
)
QQ_str
=
input
(
"请输入QQ:"
)
email_str
=
input
(
"请输入邮箱:"
)
#2.用信息建立一个名片字典
card_dict
=
{
"name"
:
name_str
,
"phone"
:
phone_str
,
"QQ"
:
QQ_str
,
"email"
:
email_str
}
#3.将名字字典添加到列表中
card_list
.
append
(
card_dict
)
print
(
card_list
)
#4.提示用户添加成功
print
(
"添加 %s 的名片成功!"
%
name_str
)
def
show_all
(
)
:
print
(
"-"
*
50
)
print
(
"显示所有的名片"
)
#判断是否存在记录
if
len
(
card_list
)
==
0
:
print
(
"当前没有任何名片记录请使用新增加名片"
)
#return可以返回一个函数的执行结果
#下方的代码不会执行
#如果return后面没有任何内容,表示会返回到调用的函数位置
#并且不返回任何结果
return
#打印表头
for
name
in
[
"姓名"
,
"电话"
,
"QQ"
,
"邮箱"
]
:
print
(
name
,
end
=
"\t\t"
)
print
(
""
)
#打印分割线
print
(
"="
*
50
)
for
card_dict
in
card_list
:
print
(
"%s\t\t%s\t\t%s\t\t%s"
%
(
card_dict
[
"name"
]
,
card_dict
[
"phone"
]
,
card_dict
[
"QQ"
]
,
card_dict
[
"email"
]
)
)
def
search_card
(
)
:
"""搜索名片"""
print
(
"-"
*
50
)
print
(
"搜索名片"
)
#1.提示用户输入要搜索的名字
find_name
=
input
(
"请输入要搜索的姓名:"
)
#2.遍历名片列表,查询要搜索的姓名,如果没有,提示用户没有找到
for
card_dict
in
card_list
:
if
(
card_dict
[
"name"
]
==
find_name
)
:
print
(
"姓名\t\t电话\t\tQQ\t\t邮箱"
)
print
(
"="
*
50
)
print
(
"%s\t\t%s\t\t%s\t\t%s"
%
(
card_dict
[
"name"
]
,
card_dict
[
"phone"
]
,
card_dict
[
"QQ"
]
,
card_dict
[
"email"
]
)
)
#TODO 针对找到的名片记录进行删除和修改
deal_card
(
card_dict
)
break
else
:
print
(
"抱歉,没有找到 %s"
%
find_name
)
def
deal_card
(
find_dict
)
:
#print("find_dict")
action_str
=
input
(
"请选择要执行的操作 "
"[1] 修改 [2] 删除 [0] 返回上级(不需要修改直接enter)"
)
if
action_str
==
"1"
:
find_dict
[
"name"
]
=
input_card_info
(
find_dict
[
"name"
]
,
"姓名:"
)
find_dict
[
"phone"
]
=
input_card_info
(
find_dict
[
"phone"
]
,
"电话:"
)
find_dict
[
"QQ"
]
=
input_card_info
(
find_dict
[
"QQ"
]
,
"QQ:"
)
find_dict
[
"email"
]
=
input_card_info
(
find_dict
[
"email"
]
,
"邮箱:"
)
print
(
"修改名片成功"
)
elif
action_str
==
"2"
:
card_list
.
remove
(
find_dict
)
print
(
"删除名片成功"
)
def
input_card_info
(
dict_value
,
tip_message
)
:
"""输入名片信息
:param dict_value:字典原有值
:param tip_message:输入的提示文字
:return:输入新的,就输出新的,没有输出原来的
"""
#1.提示用户输入
result_str
=
input
(
tip_message
)
#2.判断是否输入,输入返回结果
if
len
(
result_str
)
>
0
:
return
result_str
#3.没有输入,返回原值
else
:
return
dict_value
# def dele_card():
# # """格式化表格
# # """
# # for card_dict in card_list:
# #
# # card_list.remove(card_dict)
# #
# # if len(card_list) > 0:
# #
# # dele_card() #菜鸡增加的格式化代码