python练习002--成绩统计

题目:
一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。
请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。
输入描述
输入的第一行包含一个整数 n ,表示考试人数。
接下来 输入n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出两行,每行一个百分数,分别表示及格率和优秀率。
百分号前的部分 四舍五入保留整数。

解法一

num = int(input())
num1 = 0 #存储优秀人数
num2 = 0 #存储及格人数
for i in range(0,num):
  temp = int(input())
  if temp >= 85: #先判定是否优秀,因为优秀是及格的子集
    num1 += 1 #优秀必定及格
    num2 += 1
  elif temp >= 60:
    num2 += 1
print(f"{num2/num*100:.0f}%\n{num1/num*100:.0f}%")

解法二:函数

n=int(input())
a=[int(input()) for i in range(n)] #学生成绩封装为列表
def f(x): #定义函数计算通过率,参数为通过的下限分数
    return format(100*len([i for i in a if i>=x])/n,'.0f')+'%'
print(f(60),f(85),sep='\n')

你可能感兴趣的:(python)