python|蓝桥杯每日一题(29)成绩统计(python)

Topic

【python|蓝桥杯每日一题(29)成绩统计(python)】试题 F: 成绩统计
时间限制: 1.0s 内存限制: 512.0MB
本题总分:15 分
【问题描述】
小蓝给学生们组织了一场考试,卷面总分为 100 分,
每个学生的得分都是一个 0 到 100 的整数。
如果得分至少是 60 分,则称为及格。
如果得分至少为 85 分,则称为优秀。
请计算及格率和优秀率,
用百分数表示,百分号前的部分四舍五入保留整数。
【输入格式】
输入的第一行包含一个整数 n,表示考试人数。
接下来 n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
【输出格式】
输出两行,每行一个百分数,分别表示及格率和优秀率。
百分号前的部分四舍五入保留整数。
Solution 蓝桥杯算法题, 输入格式可参考蓝桥杯通用输入模板
首先输入n
同时设置一个合格序列passed,一个优秀序列excellent
之后题目中输入乘积
循环遍历n次
若输入的值大于等于60则加入passed中
若输入的值大于等于85则加入到excellent中
注意
这里加入excellent时选择的不是elif而是if
因为满足优秀的乘积也满足及格
所以在passed和excellent中都需要加入
两个数组的长就分别表示了及格的人数和优秀的人数
最后求出小数形式的及格率和优秀率
由于是对百分数里的数字取整
那么就要将二者的小数形式分别乘100后取整
最后第一行输出及格率加百分号
第二行输出优秀率加百分号
Code
n = int(input()) passed = [] excellent = []for i in range(n): a = int(input())if a >= 60: passed.append(a)if a >= 85: excellent.append(a)passed_0 = round(len(passed) / n * 100) excellent_0 = round(len(excellent) / n * 100)print(str(passed_0) + '%') print(str(excellent_0) + '%')

    推荐阅读