初次见面,请多关照。作为一名正儿八经的文科生,在大学接触Python一月有余。想在这里写点东西以后可以帮助初学者。(希望大佬看到不要笑话)
又到了期末考试的时候,三年A班的数学老师想要把班上的考试情况统计一下。三年A班不超过30个学生,数学老师依次输入每个同学的成绩。当输入成绩大于0时,可以继续输入成绩,如果输入一个负数,就表明停止输入成绩。
请输出:全班同学的平均分,最高分和最低分
输出格式如下:
print(“平均分是{0:.2f}”.format(avg))
print(“最高分是{0:.2f}”.format(max_score))
print(“最低分是{0:.2f}”.format(min_score))
这道题,需要判断输入的数字是否大于零,大于零,就可以进行算平均分,最高分,最低分。否则停止输入成绩,及break,跳出当前输入数字的循环。可能遇到的问题:输入的是字符串形式**输入的成绩如何储存,如何求取最高分(涉及比较)
所以我的解决办法是先建一个空的集合,输入的成绩大于零,就用append函数添加到所建的空集合里,当输入小于零,则用break跳出循环,最终在集合里用max,min判断即可
不说了虚的直接上代码啦
count = 0 #这里是为求平均值做准备,弄清楚有几个值
s = 0
score = list() #建立空的集合,也可以用set。不可以用{}
while True: #这个语句适用范围很广。“只要是真的”就可以执行下面的语句
i = eval(input()) #真正输入的地方
if i > 0: #判断成绩是否大于零(是否有效)
count += 1
s = s + i #为算平均分做准备,求得是总分
score.append(i) #注意append函数用法
else:
break #当输入的小于零,打破输入的循环,直接退出。
print(“平均分是{0:.2f}”.format(s/count))
print(“最高分是{0:.2f}”.format(max(score))) #注意max,min函数用法,不能对int类型使用,所以把int形式转化即可。
print(“最低分是{0:.2f}”.format(min(score)))
请指教。