Python:动态输入10个成绩,分别统计这组数据的平均值、标准差、中位数、及格率;(要求输入10个数据后能够自动停止输入,输入数值的范围为0-100的整数,输入异常时有相应的提示,有小数的保留一位小数,结果截图请包含正常和异常两种情况);
时间: 2024-10-25 14:09:56 浏览: 78
Python 实现输入任意多个数,并计算其平均值的例子
在Python中,你可以通过`input()`函数获取用户输入的成绩,然后利用`try-except`结构处理异常输入,并结合内置的`statistics`库计算平均值、标准差和中位数。对于及格率,假设我们设定60分为及格线。以下是完成这个任务的一个示例代码:
```python
import statistics
def calculate_stats():
scores = []
while True:
try:
score = float(input("请输入一个0-100之间的整数成绩(输入q退出):"))
if score < 0 or score > 100:
raise ValueError("输入错误,成绩应在0到100之间!")
else:
scores.append(score)
except ValueError as e:
print(e)
except KeyboardInterrupt:
break
if not scores:
print("输入已结束,没有得到有效成绩。")
else:
avg_score = round(statistics.mean(scores), 1) # 平均值
std_dev = round(statistics.stdev(scores), 1) # 标准差
median_score = round(statistics.median(scores), 1) # 中位数
# 计算及格率
pass_rate = sum(score >= 60 for score in scores) / len(scores) * 100 # 及格率(百分比)
print(f"平均分:{avg_score}")
print(f"标准差:{std_dev}")
print(f"中位数:{median_score}")
print(f"及格率:{pass_rate}%")
calculate_stats()
```
运行此程序时,用户可以输入成绩,直到输入'q'退出。如果输入的不是0到100之间的整数,会收到错误提示并继续请求输入。注意,在实际应用中,你需要把计算及格率的部分从循环体外移到适当的位置。
至于截图部分,由于这是一个文本交互的场景,无法直接提供截图。你可以手动输入测试数据,查看程序输出的结果,并在需要的情况下截图保存。如果需要更具体的帮助,例如如何操作Python环境或者截图工具,我可以指导你下一步的操作。
阅读全文