python案例:实现一个函数版的名片管理系统
本案例使用了自定义函数以及对字符串的常见操作、判断语句和循环语句等知识。
要求
- 必须使用自定义函数,完成对程序的模块化。
- 名片信息至少包括:姓名、电话、住址。
- 必须完成的功能:增、删、改、查、退出。
分析
- 首先呢,我们应该先定义一个全局变量,用于存储所有的名片信息。
cards = [{
"name": "张三",
"phone": "10086",
"address": "山西省",
}, {
"name": "李四",
"phone": "10010",
"address": "北京市",
}] # 定义一个的列表用于存放名片信息,默认里面有张三和李四的信息,方便以后调试用。
- 完成增加,删除,修改,查找等相关操作的函数(cards是可变类型的全局变量,故在函数中不用加global也可调用),注意:如定义变量 a: int = 0, int只是单纯的提示开发人员它的类型是int,方便调试。
def print_menu():
""""完成打印功能菜单"""
print("=" * 20)
print(" 名片管理系统")
print(" 1:添加一个名片")
print(" 2:删除一个名片")
print(" 3:修改一个名片")
print(" 4:查询一个名片")
print(" 5:显示所有的名片")
print(" 6:退出")
print("=" * 20)
def add_card():
"""完成添加一个名片的功能"""
new_infor: dict = {
"name": input("请输入一个名字:"),
"phone": input("请输入一个电话:"),
"address": input("请输入一个地址:")
}
cards.append(new_infor)
print("添加成功!")
def delete_card():
del_name = input("请输入要删除的名字:")
for person in cards:
if del_name == person["name"]:
cards.remove(person)
print("删除成功!")
break
else:
print("找不到要删除的人!")
def update_card():
name: str = input("请输入要修改的名字(只能通过名字来修改电话和住址):")
for person in cards:
if name == person["name"]:
phone = input("请输入新的的电话(直接回车则不修改):")
address = input("请输入新的的地址(直接回车则不修改):")
if phone:
person["phone"] = phone
if address:
person["address"] = address
print("修改成功")
break
else:
print("找不到要修改的人!")
def find_card():
"""用来查询一个名片"""
find_name: str = input("请输入要查询的名字(支持模糊查询):")
flag: int = 1
for temp in cards:
# 遍历名片中的所有名字,判断要查找的名字是否存在,不存在则打印查无此人
if temp["name"].find(find_name) != -1:
print("%s\t%s\t%s" % (temp["name"], temp["phone"], temp["address"]))
flag = 0
if flag:
print("查无此人")
def show_all():
print("姓名\t电话\t住址")
for temp in cards:
print("%s\t%s\t%s" % (temp["name"], temp["phone"], temp["address"]))
- 最后完成主函数的功能,并调用主函数
def main():
""""完成对整个程序的控制"""
# 打印功能提示
print_menu()
while True:
# 获取用户的选择
num: str = input("请输入功能序号:")
# 判断输入的是否为数字
if not num.isdigit():
print("请输入数字!")
continue
# 转换成数字类型
num: int = int(num)
# 增
if num == 1:
add_card()
# 删
elif num == 2:
delete_card()
# 改
elif num == 3:
update_card()
# 查
elif num == 4:
find_card()
elif num == 5:
show_all()
elif num == 6:
break
else:
print("请按号输入!")
print()
# 调用主函数
if __name__ == '__main__':
main()
python案例:实现一个函数版的名片管理系统的更多相关文章
- Python 如何判断一个函数是generator函数?
如何判断一个函数是否是一个特殊的 generator 函数?可以利用 isgeneratorfunction 判断: >>>from inspect import isgenerat ...
- python中,一个函数想使用另一个函数中的变量
问题: 第一个函数中用到了变量a:第二个函数也想使用变量a. 解决方法: 在第一个函数中将变量a定义为全局变量,然后在第二个函数中,也写上global a即可. 示例: def func1(): gl ...
- python练习题-写一个函数,打印所有包含copy方法的内置对象
代码: #encoding=utf-8for i in dir(__builtins__): #print "i:",i try: #这里的i是个字符串,并不能直接用d ...
- Python基础综合运用——搭建名片管理系统
综合应用 —— 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ************ ...
- python基础提高演练(名片管理系统的开发)
综合应用 —— 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ********* ...
- Python学习教程(learning Python)--2.3.4Python函数返回值
本节讨论Python函数返回值问题. Python和C语言一样,也可以在函数结束时返回一个值.但在定义自己的Python函数时,是不需要指定返回值数据类型的,这和Python不关心变量的数据类型是一致 ...
- Python:名片管理系统
字符串和列表学完, 自己试着写了一个非常简单的名片管理系统, 新萌尝试, 大佬们不要喷, 修改名片的功能我偷了个懒, 因为我不知道怎么通过定义下标,然后通过下标来修改列表内的字符串 我的思路是,把用户 ...
- python3实现名片管理系统(文件版)
def menu(): #首先定义功能列表函数menu() print(" 名片管理系统 V1.0 ") print("1:增加新用户") print(&quo ...
- Python-控制台实现简单的名片管理系统
通过Python开发一个基于控制台的名片管理系统,具体看下图以及相关代码. cards_main.py文件中提供程序的入口 import cards_toolslx while True: # TOD ...
随机推荐
- java三大集合遍历
1. 场景描述 今天需要用到map集合遍历,一下子忘记咋写了,以前一般用map.get()直接获取值,很少遍历map,刚好总结下java中常用的几个集合-map,set,list遍历. 2. 解决方案 ...
- cogs426血帆海盗(网络流打法)
这道题基本上来就能看的出来是网络流但难点在于它的结果貌似与最大流,最小割都没啥关系,我猜不少萌新像我一样想暴力枚举边(要是考试我就真这么做了),但很明显,出题人没打算让你这么水过,100000的数据不 ...
- MyBatis从入门到精通:第二章数据的创建与插入文件
数据库表的创建: create table sys_user ( id bigint not null auto_increment, ), user_password ), user_email ) ...
- python爬虫常用正则表达式组合匹配
["\']匹配什么?(.*?)匹配什么? ["\'] ----------- 匹配单双引号 (.*?)xxx ----------- 匹配任意长度字符+xxx ...
- ASP.NET Core[源码分析篇] - Startup
应用启动的重要类 - Startup 在ASP.NET Core - 从Program和Startup开始这篇文章里面,我们知道了Startup这个类的重要性,它主要负责了: 配置应用需要的服务(服务 ...
- cesium 学习(四) Hello World
一.前言 之前的文章都是基础,搭建环境.部署Cesium.学习资料等等.现在简单入手,一个Hello World页面开发. 二.Hello World 感觉Hello World没有什么特别需要讲的, ...
- Java设计模式——工厂设计模式
工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类.工厂模式的形态工厂模式主要用一下几种形态:1:简单工厂(Simple Factory).2:工厂方法(Factory M ...
- tar 命令详解(持续更新)
可以用man tar查看tar命令使用的权威解释 Main operation mode: -c: 建立压缩档案 -r:向压缩归档文件末尾追加文件 -t:查看内容 -u:更新原压缩包中的文件 -x:解 ...
- 做dede网站知识点总结(捷斯网站)
网站标题: {dede:global.cfg_webname/} 模板路径(引用js和css时候的路径): {dede:global.cfg_templets_skin/} 首页导航栏标签: < ...
- eval 与 exec, compile区别
exec 不是表达式: python 2. x, 中的一个语句和 python 3. x. 中的一个函数它编译并立即计算一个字符串中包含的语句或者语句集. 例如: exec('print(5)') # ...