编写函数grade,统计所给的n个期末成绩中最高分,及格和不及格人数,并返回值。 2. 编写函数search,查询所给的n个学生中有没有要查找的学生,有则返回下标,没有则返回-1。 3. 编写main函数,通过键盘输入期末成绩至一维数组score,输入姓名至二维数组name。用户进行选择:输入1调用grade函数;输入2调用search函数:查询任意学生(按姓名),若找到显示对应name数组中的下标,若没找到显示“查无此人”;输入0退出。
时间: 2024-03-08 21:49:58 浏览: 64
好的,以下是代码实现:
```python
def grade(score):
# 统计最高分、及格和不及格人数
max_score = max(score)
pass_num = len([x for x in score if x >= 60])
fail_num = len([x for x in score if x < 60])
# 返回结果
return max_score, pass_num, fail_num
def search(name, target):
# 查询指定学生是否在名单中
for i in range(len(name)):
if name[i] == target:
return i
# 没有找到返回-1
return -1
# 主函数
if __name__ == '__main__':
# 输入成绩和姓名
n = int(input("请输入学生人数:"))
score = []
name = []
for i in range(n):
s = int(input("请输入第%d个学生的期末成绩:" % (i+1)))
score.append(s)
n = input("请输入第%d个学生的姓名:" % (i+1))
name.append(n)
while True:
# 用户进行选择
choice = int(input("请输入选项:1-统计成绩;2-查询学生;0-退出"))
if choice == 1:
# 调用grade函数,输出结果
max_score, pass_num, fail_num = grade(score)
print("最高分为:%d,及格人数为:%d,不及格人数为:%d" % (max_score, pass_num, fail_num))
elif choice == 2:
# 输入要查询的学生的姓名,调用search函数
target = input("请输入要查询的学生姓名:")
index = search(name, target)
if index == -1:
print("查无此人")
else:
print("%s的下标为:%d" % (target, index))
elif choice == 0:
# 退出程序
break
else:
print("输入有误,请重新输入")
```
以上代码中,`grade`函数用于统计最高分、及格和不及格人数,返回一个元组;`search`函数用于查询指定学生是否在名单中,返回下标或-1;`main`函数则是整个程序的逻辑控制部分,通过用户输入选择执行哪个功能。
阅读全文