必要な機能が実装さ:
1.端末プログラムの実行を開始した後、次のインターフェースは、(追加、およびすべてのクエリを表示します)
スタートインタフェース
2.対応する機能は、適切なオプションを介して達成することができます
新しいビジネスカード
すべてのカードを表示
3. [ユーザーが発見された場合、ユーザーが変更または削除するように指示されているユーザーを探します
主なポイント:
1.分岐構造、環状構造の使用を
2.主な機能構築フレーム、別のモジュールに書き込まれた主な機能
3.各機能コードは、別のサブ機能がある場合にカプセル化された関数呼び出しとすることができる、長すぎません
4.アプリケーションのリスト、辞書変数
ビュー機能ドキュメンテーションコメント、タグのパラメータと戻り値、およびコールを読み取るために追加したとき:5.ノートのヒント
機能を完了するために#TODUマークを使用することができます。
メインプログラム:
#! /usr/bin/python3
#导入card_tools模块
import card_tools
while True:
#显示功能菜单
card_tools.show_menu()
#获取用户输入内容
user_input = input("请选择您要进行的操作:")
#判断用户输入内容
if user_input in ["1","2","3"]:
if user_input == "1":
card_tools.new_cards()
elif user_input == "2":
card_tools.show_all()
else:
card_tools.search_card()
elif user_input == "0":
break
else:
print("您的操作有误0.0,请输入0-3的数字")
#
インポートモジュール:
def show_menu():
"""
显示功能菜单函数
"""
print()
print("*"*50)
print("欢迎来到名片管理系统-.-")
print("-"*50)
print("\t[1] 新增名片")
print("\t[2] 显示全部")
print("\t[3] 查询名片")
print("\t[0] 退出系统")
print("*"*50)
def make_tab():
"""
打印表头
"""
print("="*50)
print("姓名\t\t年龄\t\t电话\t\t邮箱")
print("-"*50)
# 创建列表用于保存键值对
#不能放到函数里面,不然每次新建名片内容都被覆盖了
card_list = []
def new_cards():
"""
定义一个新建名片的函数,获取到用户输入的内容后,放入一个键值对当中,然后把键值对放入一个列表中
"""
# 获取用户输入内容并用键值对保存
name =input("请输入姓名:")
age = input("请输入年龄:")
tel = input("请输入电话:")
email = input("请输入邮箱:")
user_dict = {"name":name,
"age":age,
"tel":tel,
"email":email}
#把键值对放入列表中
card_list.append(user_dict)
def show_all():
"""
定义一个显示全部内容的函数,如果列表有信息就遍历,没信息提示用户输入
"""
if len(card_list)!=0:
make_tab()
# 遍历列表得到用户信息字典
for user_dict in card_list:
# 得到用户各项信息的值 (和表头对齐)
# for key in ("name","age","tel","email"):
# print("%s\t\t" % user_dict[key] ,end="")
print("%s\t\t" % user_dict["name"],end="")
print("%s\t\t" % user_dict["age"],end="")
print("%s\t" % user_dict["tel"],end="")
print("%s\t" % user_dict["email"],end="")
print()
print("="*50)
else:
print("当前没有任何信息,请添加新增名片")
#查询名片
def search_card():
"""
遍历card_list得到用户键值对,再把键值对中的name的值与用户
输入内容作比较,如果匹配到了则返回用户信息,如果没匹配到则
提示用户没搜索到
"""
find_name = input("请输入您要查找的姓名:")
for key_value in card_list:
if key_value["name"] == find_name:
make_tab()
# for key in ("name","age","tel","email"):
# print("%s\t\t" % key_value[key] ,end="")
print("%s\t\t" % key_value["name"],end="")
print("%s\t\t" % key_value["age"],end="")
print("%s\t" % key_value["tel"],end="")
print("%s\t" % key_value["email"],end="")
print()
print("="*50)
# 处理名片(修改或者删除)
deal_cards(key_value)
break
else:
print("您所查找的名片不存在!")
def deal_cards(key_value):
"""
找到用户后,对名片进行修改或者删除操作
:key_value: 在查找函数中,查找到的用户信息字典
"""
user_input_str = input("请选择您要进行的操作: [1]修改名片 [2]删除名片 [0]返回上一层")
if user_input_str == "1":
#修改名片
# key_value["name"]= input("姓名:")
# key_value["age"]= input("年龄:")
# key_value["email"]= input("邮箱:")
# key_value["tel"]= input("电话:")
key_value["name"] = user_input_info(key_value["name"],input("姓名"))
key_value["age"] = user_input_info(key_value["age"],input("年龄"))
key_value["tel"] = user_input_info(key_value["tel"],input("电话"))
key_value["email"] = user_input_info(key_value["email"],input("邮箱"))
print("修改成功!")
elif user_input_str == "2":
#删除名片
card_list.remove(key_value)
print("删除成功!")
def user_input_info(dict_value,input_value):
"""
判断用户的输入的值,如果不是空则修改原值。否则返回原值
:param dict_value: 字典中原有的值
:param input_value: 用户输入的用于修改的值
:return: 修改后的值
"""
if len(input_value) == 0:
return dict_value
else:
return input_value