1. 编写函数grade,统计所给的n个期末成绩中最高分,及格和不及格人数,并返回值。 2. 编写函数search,查询所给的n个学生中有没有要查找的学生,有则返回下标,没有则返回-1。 3. 编写main函数,通过键盘输入期末成绩至一维数组score,输入姓名至二维数组name。用户进行选择:输入1调用grade函数;输入2调用search函数:查询任意学生(按姓名),若找到显示对应name数组中的下标,若没找到显示“查无此人”;输入0退出。
时间: 2024-02-11 22:08:41 浏览: 66
好的,我明白了你的问题。下面是代码实现:
```python
# 定义函数grade
def grade(scores):
max_score = max(scores)
pass_num = len([score for score in scores if score >= 60])
fail_num = len([score for score in scores if score < 60])
return max_score, pass_num, fail_num
# 定义函数search
def search(names, query_name):
for i, name in enumerate(names):
if query_name == name:
return i
return -1
# 主函数
if __name__ == '__main__':
n = int(input("请输入学生人数:"))
score = []
name = []
for i in range(n):
name_i = input("请输入第{}个学生的姓名:".format(i+1))
name.append(name_i)
score_i = int(input("请输入第{}个学生的成绩:".format(i+1)))
score.append(score_i)
while True:
print("请选择操作:1-统计成绩,2-查询学生,0-退出")
op = int(input())
if op == 1:
max_score, pass_num, fail_num = grade(score)
print("最高分:{},及格人数:{},不及格人数:{}".format(max_score, pass_num, fail_num))
elif op == 2:
query_name = input("请输入要查询的学生姓名:")
idx = search(name, query_name)
if idx == -1:
print("查无此人")
else:
print("{}的成绩为:{}".format(name[idx], score[idx]))
elif op == 0:
break
else:
print("无效的操作,请重新选择。")
```
这个程序可以完成你所需的功能,你可以根据需要进行修改。
阅读全文