Python动态录入学生成绩,并求所有成绩的平均分、最高分、最低分。每输入一个成绩后询问是否继续输入下一个成绩,回答yes就继续输入下一个成绩,回答no则停止输入成绩。停止录入成绩之后,按顺序输出以上全部成绩,并计算平均成绩、最高、最低成绩。
时间: 2023-12-03 13:42:57 浏览: 123
可以使用如下代码实现:
```python
scores = []
while True:
score = input("请输入学生成绩:")
scores.append(float(score))
choice = input("是否继续输入下一个成绩?(yes/no)")
if choice.lower() == "no":
break
avg_score = sum(scores) / len(scores)
max_score = max(scores)
min_score = min(scores)
print("所有成绩如下:")
for score in scores:
print(score)
print("平均分为:", avg_score)
print("最高分为:", max_score)
print("最低分为:", min_score)
```
运行结果如下所示:
```
请输入学生成绩:90
是否继续输入下一个成绩?(yes/no)yes
请输入学生成绩:80
是否继续输入下一个成绩?(yes/no)yes
请输入学生成绩:85
是否继续输入下一个成绩?(yes/no)no
所有成绩如下:
90.0
80.0
85.0
平均分为: 85.0
最高分为: 90.0
最低分为: 80.0
```
相关问题
设计一个对学生成绩进行分析的程序,实现一个班级的学生成绩进行排序、求平均分, 求最高分、最低分以及分数段的人数进行统计等功能。并实现输出分析结果。要求菜单具有录入学生成绩信息、显示学生成绩信息、查询学生成绩信息、
好的,为了实现这个程序,我们可以将上面的班级类的功能进一步封装,然后设计一个交互式的菜单,让用户可以选择不同的功能。以下是一个可能的实现:
```python
class Student:
def __init__(self, name, score):
self.name = name
self.score = score
class Class:
def __init__(self):
self.students = []
def add_student(self, student):
self.students.append(student)
def sort_by_score(self):
self.students.sort(key=lambda x: x.score, reverse=True)
def get_average_score(self):
total_score = sum([student.score for student in self.students])
return total_score / len(self.students)
def get_highest_score(self):
return max([student.score for student in self.students])
def get_lowest_score(self):
return min([student.score for student in self.students])
def get_score_distribution(self):
distribution = {
"0-59": 0,
"60-69": 0,
"70-79": 0,
"80-89": 0,
"90-100": 0
}
for student in self.students:
if student.score < 60:
distribution["0-59"] += 1
elif student.score < 70:
distribution["60-69"] += 1
elif student.score < 80:
distribution["70-79"] += 1
elif student.score < 90:
distribution["80-89"] += 1
else:
distribution["90-100"] += 1
return distribution
def print_menu():
print("-" * 30)
print("1. 录入学生成绩信息")
print("2. 显示学生成绩信息")
print("3. 查询学生成绩信息")
print("4. 退出程序")
print("-" * 30)
def input_student():
while True:
name = input("请输入学生姓名(输入q退出):")
if name == "q":
break
try:
score = int(input("请输入学生分数:"))
except ValueError:
print("分数必须是整数,请重新输入!")
continue
s = Student(name, score)
c.add_student(s)
def show_student():
if not c.students:
print("还没有录入学生成绩信息!")
return
c.sort_by_score()
print("学生排名如下:")
for i, student in enumerate(c.students):
print(f"{i+1}. {student.name}\t{student.score}")
print("学生成绩统计信息如下:")
print(f"平均分:{c.get_average_score():.2f}")
print(f"最高分:{c.get_highest_score()}")
print(f"最低分:{c.get_lowest_score()}")
distribution = c.get_score_distribution()
print("分数段人数统计如下:")
for k, v in distribution.items():
print(f"{k}: {v}")
def search_student():
if not c.students:
print("还没有录入学生成绩信息!")
return
name = input("请输入要查询的学生姓名:")
for student in c.students:
if student.name == name:
print(f"{name}的分数是:{student.score}")
break
else:
print(f"没有找到名为{name}的学生!")
if __name__ == "__main__":
c = Class()
while True:
print_menu()
choice = input("请输入菜单编号:")
if choice == "1":
input_student()
elif choice == "2":
show_student()
elif choice == "3":
search_student()
elif choice == "4":
print("谢谢使用!")
break
else:
print("无效的菜单编号,请重新输入!")
```
在这个程序中,我们首先定义了一个菜单,让用户可以选择录入学生成绩信息、显示学生成绩信息、查询学生成绩信息或退出程序。在录入学生成绩信息时,我们使用了一个循环,让用户可以连续输入多个学生的信息,输入"q"后退出循环。在显示学生成绩信息时,我们首先调用班级对象的sort_by_score方法,将学生按照分数从高到低排序,然后输出每个学生的排名、姓名和分数,以及一些统计信息,如平均分、最高分、最低分和分数段人数统计。在查询学生成绩信息时,我们让用户输入要查询的学生姓名,然后遍历学生列表,找到对应学生的分数并输出。
您可以根据需要对这个程序进行修改和扩展。
python实现在某次考试后录入某班学生的成绩不同班级学生人数不固定最后统计该班平均分最高分和最低分
可以使用Python的列表和循环来实现这个功能。首先,你需要询问输入哪个班级的学生成绩,以及该班级有多少名学生。接着,你需要使用循环来逐个录入学生的成绩,并且计算出该班级的平均分,最高分和最低分。下面是一个示例代码:
```python
# 初始化最高分和最低分为0
highest_grade = 0
lowest_grade = 100
# 询问输入哪个班级的学生成绩
class_name = input("请输入班级名称:")
# 询问该班级有多少名学生
num_students = int(input("请输入学生人数:"))
# 初始化总成绩为0
total_grade = 0
# 循环录入每位学生的成绩
for i in range(num_students):
grade = float(input("请输入第 {} 位学生的成绩:".format(i+1)))
total_grade += grade
# 检查最高分和最低分
if grade > highest_grade:
highest_grade = grade
if grade < lowest_grade:
lowest_grade = grade
# 计算平均分
average_grade = total_grade / num_students
# 输出结果
print("{}班级的平均分为 {:.2f},最高分为 {:.2f},最低分为 {:.2f}。".format(class_name, average_grade, highest_grade, lowest_grade))
```
这段代码会先询问班级名称和学生人数,然后逐个录入每位学生的成绩,并且计算出该班级的平均分、最高分和最低分。最后,它会输出结果。
阅读全文