用python1. 动态输入10个成绩,分别统计这组数据的平均值、标准差、中 位数、及格率;(要求输入10个数据后能够自动停止输入,输入数值的范围为0-100的整数,输入异常时有相应的提示,有小数的保留一位小数,结果截图请包含正常和异常两种情况);
时间: 2023-06-17 22:06:09 浏览: 253
以下是实现要求的Python代码:
``` python
import statistics
grades = []
count = 0
while count < 10:
try:
grade = float(input("请输入一个成绩(0-100):"))
if grade < 0 or grade > 100:
print("成绩范围应为0-100,请重新输入!")
else:
grades.append(grade)
count += 1
except ValueError:
print("输入错误,请输入一个数字!")
avg = round(statistics.mean(grades), 1)
std_dev = round(statistics.stdev(grades), 1)
median = round(statistics.median(grades), 1)
pass_rate = round(len([grade for grade in grades if grade >= 60]) / len(grades) * 100, 1)
print("平均值为:", avg)
print("标准差为:", std_dev)
print("中位数为:", median)
print("及格率为:", pass_rate, "%")
```
该代码使用了Python内置的statistics模块来计算平均值、标准差和中位数。在输入成绩时,使用了异常处理来确保输入的数据为数字,并且在0-100的范围内。最后计算及格率时,使用了列表推导式来统计成绩大于等于60的数量,除以总成绩数后乘以100来计算及格率。
阅读全文