有一学生各科成绩数据(数据样式:姓名,语文,数学)读取上述文件数据,并计算语文数学的平均分,筛选出语文成绩大于35的学生姓名
可以使用Python的文件操作和列表操作来读取学生各科成绩数据,并计算平均分和筛选满足条件的学生姓名。下面是一个示例代码:
def read_student_scores(filename):
student_scores = []
with open(filename, 'r') as file:
for line in file:
line = line.strip().split(',')
name = line[0]
chinese_score = int(line[1])
math_score = int(line[2])
student_scores.append({'name': name, 'chinese': chinese_score, 'math': math_score})
return student_scores
def calculate_average(scores):
total_chinese = 0
total_math = 0
count = len(scores)
for score in scores:
total_chinese += score['chinese']
total_math += score['math']
average_chinese = total_chinese / count
average_math = total_math / count
return average_chinese, average_math
def filter_students(scores, threshold):
filtered_students = []
for score in scores:
if score['chinese'] > threshold:
filtered_students.append(score['name'])
return filtered_students
# 读取学生成绩数据
filename = 'student_scores.txt'
student_scores = read_student_scores(filename)
# 计算平均分
average_chinese, average_math = calculate_average(student_scores)
print("平均语文成绩:", average_chinese)
print("平均数学成绩:", average_math)
# 筛选满足条件的学生姓名
threshold = 35
filtered_students = filter_students(student_scores, threshold)
print("语文成绩大于35的学生姓名:", filtered_students)
请将上述代码保存为.py
文件,并将学生成绩数据存储在student_scores.txt
文件中,每行表示一个学生的姓名、语文成绩和数学成绩,用逗号分隔。运行代码后,将会输出平均语文成绩、平均数学成绩和语文成绩大于35的学生姓名。
注意:代码假设输入文件格式正确,每行包含正确的数据。如有需要,请根据实际情况对代码进行适当修改。