通过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. 报错:require_once cannot allocate memory----php,以前自己弄的稍微有点特殊的开发环境

    最近出现过一个问题,值得记录 类似于这样的报错的问题: Warning: require_once(/www/app/somecomponent.php): failed to open stream ...

  2. Win10桌面美化

    捯饬了几个小时终于捯饬好了,没什么特效,就是看起来干净了许多. 用到的小软件: 链接:https://pan.baidu.com/s/1_PSTn0JZ22ZGiMDOdvdWEw提取码:329c 1 ...

  3. 三本毕业(非科班),四次阿里巴巴面试,终拿 offer(大厂面经)

    作者:gauseen 原文:https://github.com/gauseen/blog 公众号:「学前端」,只搞技术不搞广告文,欢迎关注~ 第一次 20:00 电话一面 - 自我介绍 - 对公司工 ...

  4. 【<meta name="" content=">】的作用

    一.语法: <meta name="name" content="string"/> 二.参数解析: 1.name项:常用的选项有keywords( ...

  5. 解决linux(ubuntu18)下无法挂载ntfs磁盘,并读写挂载硬盘

    首先需要有ntfs-3g,没有的话sudo apt-get install ntfs-3g 挂载硬盘: chen@ilaptop:/$ sudo mount -o rw,remount /dev/sd ...

  6. Inno Setup, Pascal 字符串带双引号如何写

    Windows 的路径中如果有空格,就需要用双引号括起来.只能填 ASCII-Code-Number (decimal),不能用一般的 escape 方法. # + path + # 查询这个表的第一 ...

  7. Vue-cli3.0下的雪碧图插件webpack-spritesmith配置方法

    在前端项目中,为了减少对图片的请求次数,一般而言需要进行雪碧图的配置.即将多张小图标合并成一张图片,这样页面中的小图标都在一张图片上,只需请求一张图片,就可以通过CSS设置各个小图标的显示,利于节省带 ...

  8. RAID、LVM和btrfs文件系统

    一.RAID: Redundant Arrays of Inexpensive Disks,廉价磁盘冗余阵列: Redundant Arrays of Independent Disks,独立磁盘冗余 ...

  9. ACM及各类程序竞赛专业术语

    AC (Accepted) 程序通过 WA (Wrong Answer) 错误的答案 PE (Presentation Error) 输出格式错误 RE (Runtime Error) 程序执行错误 ...

  10. bzoj4318 OSU!和bzoj 3450 Tyvj1952 Easy

    这俩题太像了 bzoj 3450 Tyvj1952 Easy Description 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:( 我们来简化一下这个游戏的规则 有n次点 ...