输入5个同学的姓名和成绩,按成绩从高到低顺序输出所有学生姓名和成绩Py
时间: 2023-09-06 13:11:32 浏览: 359
好的,我可以写一个简单的 Python 程序来实现这个功能。请您依次输入 5 个同学的姓名和成绩,我将帮您完成后面的操作。
```python
# 创建一个空字典用来存储学生信息
students = {}
# 循环输入 5 个同学的姓名和成绩,并将其存储到字典中
for i in range(5):
name = input("请输入第%d个同学的姓名:" % (i+1))
score = int(input("请输入第%d个同学的成绩:" % (i+1)))
students[name] = score
# 按照成绩从高到低排序并输出学生信息
sorted_students = sorted(students.items(), key=lambda x: x[1], reverse=True)
print("按成绩从高到低排序的学生信息如下:")
for student in sorted_students:
print("%s: %d" % (student[0], student[1]))
```
您可以直接复制上面的代码到 Python 环境中执行,按照提示依次输入 5 个同学的姓名和成绩,程序会自动按成绩从高到低排序并输出所有学生的姓名和成绩。
相关问题
输入一系列学生姓名及其语文成绩(不重复),请按语文成绩由高到低的顺序,打印姓名。 输入 第一行输入一个整数m(0<m<20),第二行输入m个字符串(空格分开),代表姓名,第三行输入m个0~100之间的不重复的整数,代表成绩。 输出 输出m个姓名(按成绩排序之后的),由空格隔开。
以下是一个示例代码,实现了按语文成绩由高到低的顺序打印学生姓名的功能:
```python
m = int(input("请输入学生数量:"))
names = input("请输入学生姓名(空格分开):").split()
scores = list(map(int, input("请输入学生语文成绩(空格分开):").split()))
# 将姓名和成绩对应起来
students = list(zip(names, scores))
# 按成绩进行排序
students.sort(key=lambda x: x[1], reverse=True)
# 打印排序后的姓名
sorted_names = [student[0] for student in students]
print("按成绩由高到低排序后的学生姓名:")
print(" ".join(sorted_names))
```
你可以将以上代码保存为一个.py文件,并运行它来测试。在运行时,按照要求输入学生数量、学生姓名和语文成绩即可。程序会输出按语文成绩由高到低排序后的学生姓名。
创建文件 ex2_02.py,并在其中编写学生成绩录入程序,具体如下(1)将表中学生姓名,高数成绩及英语成绩依此输入至顺序表中。(2)对上述同学,按高等数学成绩排序。 2、对上述同学,按大学英语成绩排序。 3、删除当前顺序表中第三位同学的所有信息。
创建一个名为`ex2_02.py`的Python文件,我们可以使用列表(list)作为顺序表来实现这个简单的学生成绩录入、排序以及删除功能。以下是对应的代码示例:
```python
# 定义一个空的学生列表
students = []
def input_student_data():
while True:
name = input("请输入学生姓名(输入'q'退出):")
if name.lower() == 'q':
break
num1 = float(input("请输入该学生的高数成绩:"))
num2 = float(input("请输入该学生的英语成绩:"))
students.append((name, num1, num2))
print("学生数据已录入。")
def sort_students_by_math():
students.sort(key=lambda x: x[1], reverse=True)
print("按照高数成绩排序后的学生:")
for student in students:
print(f"{student[0]}: 高数{student[1]}, 英语{student[2]}")
def sort_students_by_english():
students.sort(key=lambda x: x[2])
print("按照英语成绩排序后的学生:")
for student in students:
print(f"{student[0]}: 高数{student[1]}, 英语{student[2]}")
def delete_third_student():
if len(students) >= 3:
del students[2]
print("第三位同学的信息已被删除。")
else:
print("顺序表中只有两位同学,无法删除。")
if __name__ == "__main__":
input_student_data()
sort_students_by_math()
sort_students_by_english()
delete_third_student()
```
在这个程序中,我们首先通过`input_student_data()`函数从用户那里获取学生姓名、高数成绩和英语成绩,然后分别实现了按高数成绩和英语成绩排序的功能,最后通过`delete_third_student()`函数删除了当前顺序表中的第三位同学的信息。
运行这段代码,你可以按照指定的方式操作学生成绩数据。注意,在实际应用中,为了增强用户体验和错误处理,可以添加更多的验证和提示。
阅读全文