1、代码:

(1)主程序

#!/usr/bin/env python
# -*- coding: UTF-8 -*- import cards_tools # 无限循环,由用户主动决定什么时候退出循环!
while True: # 显示功能菜单
cards_tools.show_menu() action_str = input("请选择希望执行的操作:")
print("您选择的操作是【%s】" % action_str) # 1,2,3 针对名片的操作
if action_str in ["", "", ""]: # 新增名片
if action_str == "":
cards_tools.new_card()
# 显示全部
elif action_str == "":
cards_tools.show_all()
# 查询名片
elif action_str == "":
cards_tools.search_card() # 0 退出系统
elif action_str == "": print("欢迎再次使用【名片管理系统】") break
# 如果在开发程序时,不希望立刻编写分支内部的代码
# 可以使用 pass 关键字,表示一个占位符,能够保证程序的代码结构正确!
# 程序运行时,pass 关键字不会执行任何的操作!
# pass
# 其他内容输入错误,需要提示用户
else:
print("您输入的不正确,请重新选择")

(2)功能程序

#!/usr/bin/env python
# -*- coding: UTF-8 -*- # 记录所有的名片字典
card_list = [] def show_menu(): """显示菜单"""
print("*" * 50)
print("欢迎使用【名片管理系统】V 1.0")
print("")
print("1. 新增名片")
print("2. 显示全部")
print("3. 搜索名片")
print("")
print("0. 退出系统")
print("*" * 50) def new_card(): """新增名片"""
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"])) # 针对找到的名片记录执行修改和删除的操作
deal_card(card_dict) break else: print("抱歉,没有找到 %s" % find_name) def deal_card(find_dict): """处理查找到的名片 :param find_dict: 查找到的名片
"""
print(find_dict) action_str = input("请选择要执行的操作 "
"[1] 修改 [2] 删除 [0] 返回上级菜单") if action_str == "": 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 == "": 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

2、图示:

python名片管理系统的更多相关文章

  1. python名片管理系统V2

    主程序: #! /usr/bin env python3 # -*- coding: utf-8 -*- # 项目三: # 1.要求:编写一个名片管理系统,功能如下: # 用户输入相对应的指令,实现对 ...

  2. Python基础综合运用——搭建名片管理系统

    综合应用 —— 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ************ ...

  3. python基础提高演练(名片管理系统的开发)

    综合应用 —— 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ********* ...

  4. 学习笔记之Python人机交互小项目二:名片管理系统

    继上次利用列表相关知识做了简单的人机交互的小项目名字管理系统后,当学习到字典时,老师又让我们结合列表和字典的知识,结合一起做一个名片管理系统,这里分享给在学习Python的伙伴! 1.不使用函数 1 ...

  5. Python:名片管理系统

    字符串和列表学完, 自己试着写了一个非常简单的名片管理系统, 新萌尝试, 大佬们不要喷, 修改名片的功能我偷了个懒, 因为我不知道怎么通过定义下标,然后通过下标来修改列表内的字符串 我的思路是,把用户 ...

  6. Python:名片管理系统(增加登录功能后出现问题,求教)

    我将一个简单的名片管理系统定义成了函数.. 2层. 一个登录界面: 一个名片管理系统使用界面: 逻辑是:登录成功=>跳入名片系统使用界面,同时,跳出登录界面,给出欢迎使用,程序结束. 此时问题来 ...

  7. python程序—名片管理系统

    创建一个名片管理系统,实现增.删.改.查.四项功能 listcard = [] while True: print('**********欢迎来到名片管理系统**********') print(' ...

  8. python案例:实现一个函数版的名片管理系统

    本案例使用了自定义函数以及对字符串的常见操作.判断语句和循环语句等知识. 要求 必须使用自定义函数,完成对程序的模块化. 名片信息至少包括:姓名.电话.住址. 必须完成的功能:增.删.改.查.退出. ...

  9. Python练习 ——名片管理系统(增添,删除,查找,修改)

    需要注意的一个地方是,如果你用的版本是3.6的,那么下面的用到的所有从外界接收信息所用到的input()用input()就行了,如果是2.7版本,那么如果接收的是字符串要用raw_input()(将接 ...

随机推荐

  1. rsync 同步文件重复拷贝问题

    rsync 是同步文件的利器,一般用于多个机器之间的文件同步与备份,同时也支持在本地的不同目录之间互相同步文件.在这种场景下,rsync 远比 cp 命令更加合适,它只会同步需要更新的文件,默认情况下 ...

  2. [luoguP2420] 让我们异或吧(dfs + 异或的性质)

    传送门 因为异或满足结合律和交换律. a^b^b=a 所以这个题直接求根节点到每个点路径上的异或值. 对于每组询问直接输出根到两个点的异或值的异或的值. ——代码 #include <cstdi ...

  3. 12.1——类的定义与声明,隐含的this指针

    类的定义与声明: (1)将const放在成员函数的形参列表之后,可以将将成员函数声明为常量,而它的意思是函数不能改变所操作的数据成员 这里必须在声明和定义处都加上const. (2)成员函数有一个隐含 ...

  4. msp430入门编程25

    msp430中C语言开发环境搭建 msp430入门学习 msp430入门编程

  5. 解决Flex4在Module里调用PopUpManager报错问题

    项目大了 就需要用到Module, 发现在一个Module里边, 和普通应用里一样popup一个组件的时候, 总是会报错. 这个在Flex3的时候也会出现, 会报样式错误 所以就想到了addPopUp ...

  6. androidstudio Cannot resolve symbol 'xxx'

    Android Studio 无法识别同一个 package 里的其他类,将其显示为红色,但是 compile 没有问题.鼠标放上去后显示 “Cannot resolve symbol XXX”,重启 ...

  7. 石家庄地铁查询PSP0级

    一.需求   :地铁(石家庄地铁)线路查询 二.       学生:洪鼎淇 合作对象:宋子健 时间记录日志: 日期 开始时间 结束时间 中断时间 净时间 活动 2019/3/30 10:00 14:0 ...

  8. Meteor Blaze

    Blaze是Meteor 软件包用于构建现场反应模板. Render方法 这种方法被用于绘制模板到DOM.首先,我们将创建 myNewTemplate 之后渲染. 我们增加 myContainer 这 ...

  9. 【转】PHP实现系统编程(四)--- 本地套接字(Unix Domain Socket)

    原文:http://blog.csdn.net/zhang197093/article/details/78143687?locationNum=6&fps=1 --------------- ...

  10. 【Mongodb教程 第十二课 】PHP mongodb 的使用

    mongodb 不用过多的介绍了,NOSQL的一种,是一个面向文档的数据库,以其方便灵活的数据结构,对于开发者来说是比较友好的,同时查询的速度也是比较快的,现在好多网站 开始使用mongodb ,具体 ...