六本神仙 发表于 2020-4-16 16:46:41

求大佬代码

通过字典存储和管理学生的基本成绩信息:
(1)指定学生的数目,然后将每个学生的成绩以字典的方式存储在字典里,分数不能大于100或小于0,学生的成绩不少于5门,学生的姓名为键,然后将所有的学生存储在名为student的字典里,学生的人数不少于4人
(2)输出学生信息时每行显示一个学生的信息
(3)给出某一学生的姓名,输出该学生的成绩信息,然后统计该学生的最高分、最低分、平均分
学生名字和成绩随意写

fan1993423 发表于 2020-4-16 17:53:34

会写,但是现在不想写,可以用字典,但是这种最好是pandas

chenyumrx 发表于 2020-4-16 17:57:41

看了一下不难,但是懒得写了,这种吃力不讨好的下次悬赏点鱼币比较好

hrp 发表于 2020-4-16 20:08:06

本帖最后由 hrp 于 2020-4-16 20:12 编辑

这种模棱两可的要求,让人写起程序来无从下手。
什么叫指定学生数目?编程者指定还是出题者指定?学生名字成绩如何获取?控制台现场输入还是直接写在程序里还是预先写入到文件再从文件读取?什么叫"输出学生信息时每行显示一个学生的信息"?看这意思是要有一个命令可以输出全部学生成绩信息吗?

某一个“天” 发表于 2024-9-4 18:53:51

def main():
    # 初始化学生字典
    student = {}
      
    # 示例:添加学生信息
    student['张三'] =
    student['李四'] =
    student['王五'] = # 故意设置一个错误分数来演示验证
    student['赵六'] =

    # 验证并修正学生成绩
    for name, scores in student.items():
      if len(scores) < 5:
            print(f"学生{name}的成绩少于5门,将跳过该学生。")
            continue
      if not all(0 <= score <= 100 for score in scores):
            print(f"学生{name}存在无效成绩,将调整至有效范围。")
            student = # 只处理大于100的情况,小于0的情况未直接处理,因为题目设定要求分数不能小于0

    # 输出所有学生的信息
    print("\n所有学生信息:")
    for name, scores in student.items():
      print(f"{name}: {scores}")

    # 根据学生姓名输出其成绩信息,并计算最高分、最低分、平均分
    search_name = input("请输入要查询的学生姓名:")
    if search_name in student:
      scores = student
      highest = max(scores)
      lowest = min(scores)
      average = sum(scores) / len(scores)
      print(f"\n{search_name}的成绩信息:")
      print(f"成绩: {scores}")
      print(f"最高分: {highest}")
      print(f"最低分: {lowest}")
      print(f"平均分: {average:.2f}")
    else:
      print(f"未找到名为{search_name}的学生。")

if __name__ == "__main__":
    main()
页: [1]
查看完整版本: 求大佬代码