没有合适的资源?快使用搜索试试~ 我知道了~
首页Python 练习题:学生成绩求极值
背景 今天整理一个 Python 练习题,需求描述如下: 程序一: 接收用户输入的名字和成绩,成绩是1-100 间、最多两位小数。 按Q结束输入,并将合法输入的数据写入到一个文件。 程序二:读取程序一输出的文件,然后对成绩计算平均值,并输出最高分和最低分值及姓名。 实现分析 本例用到的知识点: 文件操作,需要 try-except-finally ,处理文件异常; 判断成绩的正则:^[0-9]{1,2}(\.[0-9]{1,2})?$ ,成绩可以是小数点后两位小数; while 循环条件, Python 的逻辑运算是 and / or / not 等关键字,而不是逻辑操作符号; 使用 pd.r
资源详情
资源评论
资源推荐

Python 练习题:学生成绩求极值练习题:学生成绩求极值
背景背景
今天整理一个 Python 练习题,需求描述如下:
程序一: 接收用户输入的名字和成绩,成绩是1-100 间、最多两位小数。
按Q结束输入,并将合法输入的数据写入到一个文件。
程序二:读取程序一输出的文件,然后对成绩计算平均值,并输出最高分和最低分值及姓名。
实现分析实现分析
本例用到的知识点:
文件操作,需要 try-except-finally ,处理文件异常;
判断成绩的正则:^[0-9]{1,2}(\.[0-9]{1,2})?$ ,成绩可以是小数点后两位小数;
while 循环条件, Python 的逻辑运算是 and / or / not 等关键字,而不是逻辑操作符号;
使用 pd.read_csv 将 CVS 文件转换成 DataFrame 数据集;
使用 DataFrame 的 max 、min、avg 、idmax、idmin 等函数完成计算操作。
成绩信息收集成绩信息收集
编写一个 score_writer.py 脚本文件,内容如下:
import re
try:
# define file reader
f1 = open('E:/score.log','w',encoding='utf-8')
f1.write('name,score')
# a pattern check score input
pattern = "^[0-9]{1,2}(\.[0-9]{1,2})?$"
print('请输入姓名和考试成绩,按 Q 结束,成绩范围 [1-100],最多允许两位小数。')
# receive name
name = input("姓名:")
while name != 'Q' and name != 'q' :
score = input("成绩:").strip()
while re.match(pattern,score)==None and score != '100':
score = input("成绩不合法,请重新输入:").strip()
print(name,':',score)
f1.write(name+','+score+'')
name = input("姓名:")
print('输入结束,存储数据')
except IOError:
print("操作异常")
finally:
f1.close()
运行结果:



















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0