PTA Python 7-2 统计成绩比例

该篇文章介绍了如何使用Python编程语言实现输入一组学生成绩,然后计算85分及以上成绩的优秀率,并输出结果。

编写程序实现:输入一个小组若干个学生成绩,统计这个小组成绩的优秀率(以85分及以上成绩为优秀)。

输入格式及样例:

在同一行输入若干个学生成绩,以逗号间隔。

50,80,60,78,95,86,85,74,67,75
输出格式及样例:

输出“优秀率为......%。”字样。提示:格式符 %% 可以输出一个%号

优秀率为30.00%。

答案:

list_my = input().split(",")
list_count = []
for x in list_my:
    list_count.append(int(x))
count = len(list_count)
i = 0
for x in list_count:
    if x >= 85:
        i += 1
print(f"优秀率为{(i/count)*100:.2f}%。")

 

由于未找到直接关于PTA平台7 - 2成绩统计表的引用内容,不过可以结合相关引用推测实现成绩统计表的一般思路。 ### 思路分析 - **数据输入**:需要获取学生的相关信息,如学号、姓名、成绩等。可以通过用户输入或者文件读取的方式获取。 - **成绩等级计算**:根据成绩的范围将学生成绩划分为不同的等级,如引用[1]中85 - 100为A,70 - 84为B,60 - 69为C,0 - 59为D。 - **统计信息计算**:计算平均分、最高分、最低分、不及格人数等统计信息,像引用[3]和[4]中分别计算了平均分、最高分、最低分和不及格人数。 - **输出结果**:将统计好的信息按照一定的格式输出,形成绩统计表。 ### 示例代码(以C语言为例) ```c #include <stdio.h> #include <stdlib.h> #define MAX_STUDENTS 100 struct student { int num; char name[20]; int score; char grade; }; // 根据成绩设置等级并返回不及格人数 int set_grade(struct student *students, int n) { int fail_count = 0; for (int i = 0; i < n; i++) { if (students[i].score >= 85 && students[i].score <= 100) { students[i].grade = 'A'; } else if (students[i].score >= 70 && students[i].score < 85) { students[i].grade = 'B'; } else if (students[i].score >= 60 && students[i].score < 70) { students[i].grade = 'C'; } else { students[i].grade = 'D'; fail_count++; } } return fail_count; } int main() { int n; struct student students[MAX_STUDENTS]; // 输入学生数量 printf("请输入学生数量: "); scanf("%d", &n); // 输入学生信息 for (int i = 0; i < n; i++) { printf("请输入第 %d 个学生的学号、姓名和成绩: ", i + 1); scanf("%d %s %d", &students[i].num, students[i].name, &students[i].score); } // 设置等级并获取不及格人数 int fail_count = set_grade(students, n); // 计算平均分、最高分、最低分 int sum = 0; int max_score = students[0].score; int min_score = students[0].score; for (int i = 0; i < n; i++) { sum += students[i].score; if (students[i].score > max_score) { max_score = students[i].score; } if (students[i].score < min_score) { min_score = students[i].score; } } double average = (double)sum / n; // 输出成绩统计表 printf("成绩统计:\n"); printf("学号\t姓名\t成绩\t等级\n"); for (int i = 0; i < n; i++) { printf("%d\t%s\t%d\t%c\n", students[i].num, students[i].name, students[i].score, students[i].grade); } printf("平均分: %.2lf\n", average); printf("最高分: %d\n", max_score); printf("最低分: %d\n", min_score); printf("不及格人数: %d\n", fail_count); return 0; } ``` ### 示例代码(以Python为例) ```python # 输入学生数量 n = int(input("请输入学生数量: ")) students = [] # 输入学生信息 for i in range(n): num, name, score = input(f"请输入第 {i + 1} 个学生的学号、姓名和成绩,用空格分隔: ").split() score = int(score) students.append({"num": num, "name": name, "score": score}) # 计算等级和不及格人数 fail_count = 0 for student in students: if 85 <= student["score"] <= 100: student["grade"] = 'A' elif 70 <= student["score"] < 85: student["grade"] = 'B' elif 60 <= student["score"] < 70: student["grade"] = 'C' else: student["grade"] = 'D' fail_count += 1 # 计算平均分、最高分、最低分 scores = [student["score"] for student in students] average = sum(scores) / n max_score = max(scores) min_score = min(scores) # 输出成绩统计表 print("成绩统计:") print("学号\t姓名\t成绩\t等级") for student in students: print(f"{student['num']}\t{student['name']}\t{student['score']}\t{student['grade']}") print(f"平均分: {average:.2f}") print(f"最高分: {max_score}") print(f"最低分: {min_score}") print(f"不及格人数: {fail_count}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值