小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整数。
解题思路:很简单的一道题,用for循环和if语句即可完成。
1.首先输入学生的人数,定义及格人数和优秀人数。
2. for循环n次,依次输入n个同学的成绩,根据题目要求用if语句分别求出及格人数和优秀人数。
3.除以总人数即可得到及格率与优秀率,这里要注意输出数据的格式,要求四舍五入保留整百分数。
import os
import sys
n = int(input("请输入学生人数:"))
pass_num = 0 # 及格人数
perfect_num = 0 # 优秀人数
for i in range(1,n+1):
score = int(input("请输入第{}个学生的成绩".format(i)))
# 60分以上及格
if score>=60:
pass_num += 1
# 85~100为优秀
if score>=85 and score<=100:
perfect_num += 1
# 计算比例,保留整数,且以百分号的形式表示
# {:.0%}
print("及格率为{:.0%}".format(pass_num/n))
print("优秀率为{:.0%}".format(perfect_num/n))
补充:其它数据输出形式
python自带函数round
round(a,b):对a四舍五入保留b位小数
如round(3.141,2)表示对3.141四舍五入保留两位小数,输出3.14
{:.af}表示保留a位小数 故此题还可以这样写
a = round(pass_num/n,2)
b = round(perfect_num/n,2)
print("及格率为{:.0f}%".format(a*100))
print("优秀率为{:.0f}%".format(b*100))