通过Python开发一个基于控制台的名片管理系统,具体看下图以及相关代码。

cards_main.py文件中提供程序的入口

 import cards_toolslx

 while True:
# TODO 显示功能菜单
cards_toolslx.show_menu() GongNeng = input("请选择您要使用的功能:")
print("您选择的操作是:[%s]" % GongNeng) if GongNeng in ["","",""]: #新增名片
if GongNeng == "":
cards_toolslx.ChaRu()
#显示名片
elif GongNeng == "":
cards_toolslx.XianShi() #查询名片
else:
cards_toolslx.ChaXun() elif GongNeng == "":
print("-" * 50)
print("欢迎再次使用名片管理系统")
break else:
print("-" * 50)
print("输入有误,请重新输入")

cards_toolslx.py文件提供名片系统中所用的各种函数

 """记录所有名片字典的列表"""
card_list = [] def show_menu():
"""显示菜单"""
print("*" * 50)
print("欢迎使用名片管理系统")
print("1-新增名片")
print("2-显示全部")
print("3-搜索名片")
print("0-退出系统")
print("*" * 50) def ChaRu():
"""
新增名片 """
print("-" * 50)
print("新增名片") #1.提示用户输入名片的详细信息
name_str = input("请输入姓名:")
phone = input("请输入电话:")
qq_str = input("请输入qq:")
emall_str = input("请输入邮箱:") #2.当用户输入完成后建立用户名片字典
card_dict = {"name":name_str,
"phone":phone,
"qq":qq_str,
"emall":emall_str}
card_list.append(card_dict)
print(card_list) #3.名片字典添加到列表中
print("%s名片添加成功!" % name_str) def XianShi():
"""显示全部"""
print("-" * 50)
print("显示全部") #打印表头
for name in ["姓名","电话","qq","邮箱"]:
print(name,end="\t\t\t\t") print("")
print("="*50) for card_dict in card_list:
print("%s\t\t%s\t\t%s2\t\t%s" % (card_dict["name"],
card_dict["phone"],
card_dict["qq"],
card_dict["emall"]
)) def ChaXun():
"""搜索名片"""
print("-" * 50)
print("搜索名片")
SouSuo = input("请输入要搜索的名字:") for a in card_list:
if SouSuo == a["name"]:
for name in ["姓名", "电话", "qq", "邮箱"]:
print(name, end="\t\t\t\t")
print("") print("%s\t\t%s\t\t%s2\t\t%s" % (a["name"],
a["phone"],
a["qq"],
a["emall"]
))
deal_card(a) break
else:
print("未搜索到%s的名片!" % SouSuo) def deal_card(find_dict):
""" @param 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["emall"] = input_card_info(find_dict["emall"],"邮箱")
print("成功修改名片") elif action_str == "":
card_list.remove(find_dict)
print("成功删除名片") elif action_str == "":
show_menu() else:
print("输入错误,请重新选择!") def input_card_info(dict_value,tip_message): #1.提示用户输入内容
result_str = input_card_info(tip_message)
#2.针对用户的输入如进行判断,如果用户输入修改数据,直接返回结果
if len(result_str) > 0:
return result_str else:
return dict_value
#3.如果用户没有输入内容,返回字典中原有的值

Python-控制台实现简单的名片管理系统的更多相关文章

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

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

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

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

  3. Python:名片管理系统

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

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

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

  5. python名片管理系统V2

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

  6. python名片管理系统

    1.代码: (1)主程序 #!/usr/bin/env python # -*- coding: UTF-8 -*- import cards_tools # 无限循环,由用户主动决定什么时候退出循环 ...

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

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

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

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

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

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

随机推荐

  1. java中String StringBuilder StringBuffer比较和效率(性能)测试

    string stringbuilder stringbuffer三者的区别 从JDK源码看,String.StringBuilder.StringBuffer都是存放在char[] 数组字符串. 简 ...

  2. git flow配置问题

    Mac使用 git flow 的时候,当 -m 进行换行有时消息会被截断,怎么解决? 原因: brew 上的 gnu-getopt 这个包未配置好 步骤: 1. 在 ~/.gitflow_export ...

  3. INDIRECT函数实现动态图表的跨数据抓取

    涉及函数: indirect函数:通常有两种用法.直接指定单元格地址和隐式指定单元格地址.直接指定:=indirect("A4"),则会返回A4单元格所显示的内容.参数给定的既是字 ...

  4. 巧用Grafana和Arthas自动抓取K8S中异常Java进程的线程堆栈

    前言 近期发现业务高峰期时刻会出现CPU繁忙导致的timeout异常,通过监控来看是因为Node上面的一些Pod突发抢占了大量CPU导致的. 问: 没有限制CPU吗?是不是限制的CPU使用值就可以解决 ...

  5. linux下批量删除文件

    1. 在linux批量删除多级目录下同一格式的文件,可采用find + exec命令组合: 如在删除old目录下的,所有子目录中,后缀为.l的文件方法为: find old -type f -name ...

  6. QFileDialog::getOpenFileName() hangs

    https://forum.qt.io/topic/49209/qfiledialog-getopenfilename-hangs-in-windows-when-using-the-native-d ...

  7. [Qt] Release模式下产生调试信息

    分两步,设置Qt配置文件,设置VS. https://blog.csdn.net/itas109/article/details/83652387 F:\Qt\Qt5.7.1\5.7\msvc2015 ...

  8. 【已解决】React项目中按需引入ant-design报错TypeError: injectBabelPlugin is not a function

    react项目中ant-design按需加载,使用react-app-rewired的时候报错 运行npm start或者yarn start报如下错误: TypeError: injectBabel ...

  9. 《SQL初学者指南》——第1章 关系型数据库和SQL

    第1章 关系型数据库和SQL SQL初学者指南在本章中,我们将介绍一些背景知识,以便于你能够很快地上手,能在后续的章节中编写SQL语句.本章有两个主题.首先是对本书所涉及到的数据库做一个概述,并且介绍 ...

  10. H3C配置Web登陆

    为什么80%的码农都做不了架构师?>>>   1.开启http服务. [H3C]ip http enable 2.创建web登陆的用户. [H3C]local-user king / ...