题目描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。
请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。
输入描述
输入的第一行包含一个整数 n 表示考试人数。
接下来 n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。
代码实现
import os
import sys
n=eval(input())
sum1=0
sum2=0
for i in range(n):
score=int(input())
if score>=60:
sum1 += 1
if score>=85:
sum2 += 1
print(str(round(sum1/n*100))+'%') #及格率
print(str(round(sum2/n*100))+'%') #优秀率
!!最后进行字符连接输出时出现报错信息:unsupported operand type(s) for +: ‘int’ and ‘str’,原因如下:
“+”在python中有两个作用,一个是数学运算符,是用来在整型、浮点型等数学之间进行加法操作的。另一个是用来进行字符串连接的。所以当你的“+”出现在即有数学运算和字符连接的情况下,计算机根本不知道哪两个是要进行字符串连接,哪两个之间要进行数学运算。
解决办法:转换为str
print(str(x))
感谢博主整理的round()函数详解