Python开发基础-项目实训-在线投票系统ppt课件
《Python开发基础-项目实训-在线投票系统ppt课件》由会员分享,可在线阅读,更多相关《Python开发基础-项目实训-在线投票系统ppt课件(27页珍藏版)》请在装配图网上搜索。
1、项目实训-在线投票系统u完成“在线投票系统”n添加投票候选人n删除候选人n为候选人投票n按序号投票n删除投票n输出统计信息n本章任务2/30u理解程序的基本概念u会使用顺序、选择、循环、跳转语句编写程序u会使用列表、字典等数据结构u会使用相关运算符和函数做统计计算本章目标3/30u开发工具nPyCharm CommunitynAnaconda3.5.1u开发语言nPython3.6.4项目环境准备4/30u传统人工投票及统计票数方法n投票统计速度较慢n计票准确率不能保证n不能在投票过程中实时输出统计结果u在线投票系统n采用序号投票的方式,速度较快n程序进行计票统计,准确率有保证n在程序中设置命
2、令,实时调用统计模块输出统计结果项目需求分析5/30u开发步骤n明确需求p主要阶段 添加候选人 给候选人投票 输出统计信息n明确主要功能n思考各个功能的实现方式问题分析6/30项目流程图阶段阶段1实现功能:增减候选人阶段阶段2实现功能:1.按序号投票2.删除投票3.清空票数4.实时输出统计信息阶段阶段3实现功能:输出统计信息7/30u添加候选人项目效果参考3-18/30u为候选人投票项目效果参考3-29/30u输出统计信息项目效果参考3-310/30u实现添加和删除候选人名n使用列表数据结构,通过append()和pop()方法实现u退出添加候选人阶段n使用break跳出while循环实现u在
3、控制台交互n使用input()函数实现u使用命令的形式操作实现操作n使用if语句判断输入的内容项目功能拆解添加候选人11/30u对候选人投票添加票数、减少票数和清空票数n使用列表数据结构,通过append()和pop()方法实现n清空票数直接将保存列表的变量赋值为空列表u结束投票n使用break跳出while循环实现u在控制台交互n使用input()函数实现u使用命令的形式操作实现操作n使用if语句判断输入的内容项目功能拆解为候选人投票12/30u票数计数及排序n接收投票阶段返回的得票列表n使用字典实现计数,返回该字典n使用列表sort()方法实现排序,返回列表u统计信息输出n接收统计票数字典
4、作为参数,输出统计信息p排名p票数p票数占比项目功能拆解输出统计结果13/30项目功能拆解代码函数列表函数名描述append_candidates()添加候选人名append_vote()给候选人投票counter()票数计数器sort_by_value()票数排序describe()输出统计信息online_voting()主运行函数,根据需求调用相关函数14/30u当添加候选人列表为空时,阻止直接进入投票阶段,并提示“请先输入候选人名”难点分析添加候选人阶段vote_list=#候选人列表while True:candidate=input(请输入候选人名或者输入命令)if prompt.
5、strip()=finish:if len(vote_list)!=0:break else:print(请先输入候选人名)else:vote_list.append(candidate)print(添加候选人成功)15/30u输入的候选人名如果不在候选人名单中,提示“请输入候选人列表中的名字”难点分析为候选人投票阶段3-1vote_list=“张三”,”李四”#候选人列表votes_name=#投票列表voting=input(投票给:)if voting in vote_list:#判断是否在候选人列表中 votes_name.append(voting)else:print(请输入候选人
6、列表中的名字)16/30u操作者与命令行交互时可输入候选人名或者输入命令u当输入命令时,要避免将该命令认为是操作者投票难点分析为候选人投票阶段3-2vote_list=“张三”,”李四”#候选人列表votes_name=#投票列表key_word_list=stop,menu#定义命令关键字voting=input(投票给:)if voting in key_word_list:#判断是否输入命令 if voting=stop:#实现stop命令的功能 elif.:#实现其他命令的功能elif voting in vote_list:#判断是否输入候选人 votes_name.append(v
7、oting)else:print(请输入候选人列表中的名字)17/30u为了输入速度更快,对输入的候选人序号进行投票,可以使用列表索引实现难点分析为候选人投票阶段3-3vote_list=“张三”,”李四”#候选人列表votes_name=#投票列表voting=input(投票给:)if voting in vote_list:#判断是否在候选人列表中 votes_name.append(voting)elif voting in str(i)for i in range(1,len(vote_list)+1):vote_name.append(vote_listint(voting)-1)
8、else:print(请输入候选人列表中的名字或者对应的序号)input()函数返回的类型为函数返回的类型为str类型,必要时需要做类型转换类型,必要时需要做类型转换注意18/30 定义函数append_candidates()声明空列表vote_list保存候选名 使用while、break添加候选人 使用if语句实现输入命令来控制程序 返回vote_list列表项目实现思路添加候选人演示示例1:实现append_candidates()函数示例19/30 定义计数函数counter(votes_name)u函数的参数是投票列表(并非候选人列表)声明空字典count_dict 遍历votes
9、_name列表,使用count_dict计数 返回字典count_dict项目实现思路计数函数演示示例2:实现counter()函数示例20/30 定义排序函数sort_by_value(votes,top_k=None)u参数votes接收计数函数返回的字典utop_k可选参数,当候选人名单较多时,选取前k 遍历votes中的items()使用sort()函数,对票数进行降序排序 返回排序后的列表项目实现思路排序函数演示示例3:实现sor t_by_value()函数示例21/30 定义统计信息函数describe(votes,temp=False)u参数votes接收counter()函数
10、返回的计数字典utemp可选参数表示调用时的位置 对votes.values()进行求和,求出总票数 调用sort_by_value()函数进行排序 最终打印出统计信息u排名、票数、占总票数百分比项目实现思路统计信息函数演示示例4:实现describe()函数示例22/30 定义投票函数append_vote(vote_list)uvote_list参数是候选人列表 声明votes_name保存投票,声明命令列表 使用while、break添加投票 使用if语句实现输入命令来控制程序 添加菜单选项控制程序运行 返回votes_name投票列表项目实现思路投票函数演示示例5:实现append_v
11、ote()函数示例23/30 定义投票函数online_voting(vote_list)打印规则介绍信息 调用append_candidates()函数添加候选人 调用append_vote()函数进行投票 调用counter()进行统计计数 调用describe()函数进行输出统计信息项目实现思路主运行函数演示示例6:实现online_voting()函数示例24/30u编码实现“在线投票系统”学员操作完成时间:30分钟25u常见问题及解决办法u代码规范问题u调试技巧共性问题集中讲解共性问题集中讲解 26/30u使用函数,让程序功能和流程的模块化更清晰u设计程序时需要考虑周全,以保证程序健壮n当尚未添加候选人时,不能进入投票阶段n不能将票投给未在候选人列表中的人n投票阶段输入命令时需要进行判断总结27/30
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。