标签:文件名 添加 姓名 chmod 分隔线 break import dem 控制
1、目标
综合应用已经学习过的知识点:变量、流程控制、函数、模块
2、开发
名片管理系统
3、系统需求
3.1 程序启动,显示名片管理系统欢迎界面,并显示功能菜单
3.2 用户用数字选择不同的功能
3.3 根据功能选择,执行不同的功能
3.4 用户名片需要记录用户的姓名、电话、qq、邮件
3.5 如果查询到指定的名片,用户可以选择修改或则删除名片
4、框架搭建
4.1 目标
搭建名片管理系统框架结构
1)准备文件,确定文件名,保证能够在需要的位置编写代码
2)编写主运行循环,实现基本的用户输入和判断
4.2 文件准备
1)新建card_main.py,保存主程序功能代码
程序的入口
每次启动名片管理系统都通过main这个文件启动
2)新建card_tools.py保存所有名片功能函数
将对名片的新增、查询、修改、删除等功能封装在不同的函数中
4.3 编写主运行循环
5、保存名片数据的结构
程序就是用来处理数据的,而变量就是用来存储数据的
使用字典记录每一张名片的详细信息
使用列表统一记录所有的名片字典
6、涉及的应用
1) shebang,即在程序的开头添加#! /usr/bin/python3后修改文件可执行权限chmod +x demo.py,即可直接运行文件./demo.py,而不需要通过python3 demo.py来执行
2) 提取程序为函数,简化代码结构
7、card_main.py
1 #! /usr/bin/python3 2 3 import card_tools 4 5 while True: 6 7 # 显示功能菜单 8 card_tools.show_menu() 9 10 # 输入动作,并显示动作 11 action_str = input(‘请选择希望执行的操作:‘) 12 print("您选择的操作是:[%s]" % action_str) 13 14 15 # 1,2,3针对名片的操作 16 if action_str in [‘1‘,‘2‘,‘3‘]: 17 # 新增名片 18 if action_str==‘1‘: 19 card_tools.new_card() 20 # 显示全部 21 elif action_str==‘2‘: 22 card_tools.show_all() 23 # 查询名片 24 elif action_str==‘3‘: 25 card_tools.search_card() 26 # 0 退出系统 27 elif action_str==‘0‘: 28 print(‘-‘*50) 29 print(‘欢迎再次使用【名片管理系统】‘) 30 print(‘-‘*50) 31 break; 32 else: 33 print(‘您输入的不正确,请重新选择‘)
8、card_tools.py
1 # 定义一个列表变量,存储名片字典 2 card_list = [] 3 4 5 # 名片欢迎界面 6 def show_menu(): 7 print(‘\t‘) 8 print(‘*‘*50) 9 print(‘欢迎使用【名片管理系统】V1.0‘) 10 print() 11 print(‘1.新建名片‘) 12 print(‘2.显示全部‘) 13 print(‘3.查询名片‘) 14 print() 15 print(‘0.退出系统‘) 16 print(‘*‘*50) 17 18 # 新增名片 19 def new_card(): 20 """新增名片""" 21 print(‘-‘*50) 22 print(‘新增名片‘) 23 print(‘-‘*50) 24 25 # 1提示用户输入名片的详细信息 26 name_str= input(‘请输入姓名:‘) 27 phone_str = input(‘请输入电话号码:‘) 28 qq_str = input(‘请输入qq号码:‘) 29 email_str = input(‘请输入邮箱号码:‘) 30 # 2使用用户输入的信息建立一个名片字典 31 card_dict = {‘name‘:name_str, 32 ‘phone‘:phone_str, 33 ‘qq‘:qq_str, 34 ‘email‘:email_str} 35 # 3将名片字典添加到列表中 36 card_list.append(card_dict) 37 # 4提示用户添加成功 38 print(‘-‘*50) 39 print(‘添加%s的名片成功‘ % name_str) 40 41 42 # 显示全部 43 def show_all(): 44 """显示全部""" 45 print(‘-‘*50) 46 print(‘显示全部‘) 47 print(‘-‘*50) 48 49 if card_list: 50 51 # 打印表头 52 for name in [‘姓名‘,‘电话‘,‘QQ‘,‘邮箱‘]: 53 print(name,end=‘\t\t‘) 54 # 打印分隔线 55 print(‘\t‘) 56 print(‘=‘*50) 57 58 # 遍历名片列表,依次输出信息 59 for card_dict in card_list: 60 print(‘%s\t\t%s\t\t%s\t\t%s‘ % (card_dict[‘name‘], 61 card_dict[‘phone‘], 62 card_dict[‘qq‘], 63 card_dict[‘email‘])) 64 else: 65 print(‘未存储任何名片,请进行添加‘) 66 67 # 查询名片 68 def search_card(): 69 """查询名片""" 70 print(‘-‘*50) 71 print(‘查询名片‘) 72 print(‘-‘*50) 73 74 # 1提示用户输入要搜索的姓名 75 find_name_str = input(‘请输入要搜索的姓名:‘) 76 77 # 2遍历名片列表,查询要搜索的姓名,如果没有找到,需要提示用户 78 for card_dict in card_list: 79 if card_dict[‘name‘]==find_name_str: 80 print(‘找到了‘) 81 print(‘=‘*50) 82 # 打印表头 83 for name in [‘姓名‘,‘电话‘,‘QQ‘,‘邮箱‘]: 84 print(name,end=‘\t\t‘) 85 # 打印分隔线 86 print(‘\t‘) 87 print(‘=‘*50) 88 print(‘%s\t\t%s\t\t%s\t\t%s‘ % (card_dict[‘name‘], 89 card_dict[‘phone‘], 90 card_dict[‘qq‘], 91 card_dict[‘email‘])) 92 93 # 针对找到的名片进行修改和删除的操作 94 deal_card(card_dict) 95 break 96 else: 97 print(‘抱歉,没有找到%s‘ % find_name_str) 98 99 def deal_card(find_dict): 100 """处理名片""" 101 action_str = input("请选择要执行的操作:[1] 修改 [2] 删除 [0] 返回") 102 if action_str==‘1‘: 103 find_dict[‘name‘]=input_card_info(find_dict[‘name‘], 104 ‘请输入要修改的姓名:‘) 105 find_dict[‘phone‘]=input_card_info(find_dict[‘phone‘], 106 ‘请输入要修改的电话:‘) 107 find_dict[‘qq‘]=input_card_info(find_dict[‘qq‘], 108 ‘请输入要修改的qq:‘) 109 find_dict[‘email‘]=input_card_info(find_dict[‘email‘], 110 ‘请输入要修改的邮箱:‘) 111 print(‘修改名片成功‘) 112 elif action_str==‘2‘: 113 card_list.remove(find_dict) 114 print(‘删除名片成功‘) 115 116 117 def input_card_info(dict_value,tip_message): 118 """如果用户输入了内容,返回输入值,否则返回默认值""" 119 # 1提示用户输入内容 120 result_str = input(tip_message) 121 # 2针对用户的输入进行判断,如果用户输入了内容,直接返回结果 122 if len(result_str)>0: 123 return result_str 124 # 3如果用户没有输入内容,返回‘字典中原有的值’ 125 else: 126 return dict_value
标签:文件名 添加 姓名 chmod 分隔线 break import dem 控制
原文地址:https://www.cnblogs.com/nuochengze/p/12617130.html