鱼C论坛

 找回密码
 立即注册
查看: 946|回复: 4

[已解决]求大佬代码

[复制链接]
发表于 2020-4-16 16:46:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
通过字典存储和管理学生的基本成绩信息:
(1)指定学生的数目,然后将每个学生的成绩以字典的方式存储在字典里,分数不能大于100或小于0,学生的成绩不少于5门,学生的姓名为键,然后将所有的学生存储在名为student的字典里,学生的人数不少于4人
(2)输出学生信息时每行显示一个学生的信息
(3)给出某一学生的姓名,输出该学生的成绩信息,然后统计该学生的最高分、最低分、平均分
学生名字和成绩随意写
最佳答案
2024-9-4 18:53:51
def main():  
    # 初始化学生字典  
    student = {}  
      
    # 示例:添加学生信息  
    student['张三'] = [90, 85, 92, 78, 88]  
    student['李四'] = [82, 95, 76, 88, 90]  
    student['王五'] = [68, 78, 82, 95, 101]  # 故意设置一个错误分数来演示验证  
    student['赵六'] = [76, 85, 90, 82, 78]  
  
    # 验证并修正学生成绩  
    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[name] = [min(score, 100) for score in scores]  # 只处理大于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[search_name]  
        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()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-16 17:53:34 | 显示全部楼层
会写,但是现在不想写,可以用字典,但是这种最好是pandas
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-16 17:57:41 | 显示全部楼层
看了一下不难,但是懒得写了,这种吃力不讨好的下次悬赏点鱼币比较好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-16 20:08:06 From FishC Mobile | 显示全部楼层
本帖最后由 hrp 于 2020-4-16 20:12 编辑

这种模棱两可的要求,让人写起程序来无从下手。
什么叫指定学生数目?编程者指定还是出题者指定?学生名字成绩如何获取?控制台现场输入还是直接写在程序里还是预先写入到文件再从文件读取?什么叫"输出学生信息时每行显示一个学生的信息"?看这意思是要有一个命令可以输出全部学生成绩信息吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-4 18:53:51 | 显示全部楼层    本楼为最佳答案   
def main():  
    # 初始化学生字典  
    student = {}  
      
    # 示例:添加学生信息  
    student['张三'] = [90, 85, 92, 78, 88]  
    student['李四'] = [82, 95, 76, 88, 90]  
    student['王五'] = [68, 78, 82, 95, 101]  # 故意设置一个错误分数来演示验证  
    student['赵六'] = [76, 85, 90, 82, 78]  
  
    # 验证并修正学生成绩  
    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[name] = [min(score, 100) for score in scores]  # 只处理大于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[search_name]  
        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()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 18:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表