函数中让用户循环输入一组分数,输入结束后保存到一个列表中。
把平均分,最高分,最低分,及格人数,及格率返回出来(接收列表为参数)
让用户自己选择是否继续输入,1继续 2结束 (选择输入只能输入1或2,错误三次自动退出
python做一个分数统计器
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- Python-ZZY 2021-08-31 13:02关注
from sys import exit def statistical(scorelist): '''定义分数统计函数,把平均分,最高分,最低分,及格人数,及格率返回出来,接受列表为参数''' if scorelist == []: #如果列表是空的 return [] average_num = sum(scorelist) / len(scorelist) #数字总和除以数量得到平均分数 max_num = max(scorelist) #max函数返回最大值 min_num = min(scorelist) #min函数返回最小值 pass_num=0 #初始化及格人数 for score in scorelist: if score >= 60: pass_num += 1 #如果及格,及格人数加1 pass_rate = pass_num / len(scorelist) #及格率等于及格人数除以总人数 return [average_num, max_num, min_num, pass_num, pass_rate] #返回最后的统计数据列表 scorelist = [] wrong = 0 #输入错误的次数 def iswrong(): '''输入错误的处理''' global wrong wrong += 1 if wrong == 3: exit() #错误3次,退出程序 def reset(): '''定义清空数据的函数''' global wrong, scorelist scorelist = [] wrong = 0 while True: #无限循环 while True: score = input("请循环输入分数,输入完毕请输入y: ") if score == "y": if scorelist != []: #如果列表不是空的 print("平均分,最高分,最低分,及格人数,及格率") print(statistical(scorelist)) #就打印列表内容 break else: print("您没有输入过任何数据!") continue reset() continue elif score == "": #没有输入数据 print("您没有输入内容!") continue try: score = float(score) except ValueError: print("您输入的不是数字!") continue else: #无异常 scorelist.append(score) #将分数添加进列表 while True: goon = input("您还要继续输入吗?1继续,2退出: ") if goon == "1": break elif goon == "2": exit() else: #输入的什么也不是 print("输入不合理!达到三次退出程序") iswrong()
如果代码写的好,麻烦给个采纳!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
- ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
- ¥15 帮我写一个c++工程
- ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
- ¥15 关于smbclient 库的使用
- ¥15 微信小程序协议怎么写
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?