【问题标题】:how to write a program that using lists for calculating GPA of students in python如何编写一个程序,使用列表在python中计算学生的GPA
【发布时间】:2022-08-17 01:44:09
【问题描述】:

我必须用python编写一个程序,用户输入3个专业,然后他输入每个专业的学生及其班级和每个班级的分数,然后我的程序应该计算每个学生的GPA,然后打印最好和最差的学生根据他们的GPA。

我在考虑一个有 3 个主要列表的程序,每个列表里面都有另一个学生列表,每个学生列表里面还有另外两个列表,用于课程和分数!但这似乎是不可能的,因为写它我不知道用户的输入,所以我不能叫学生的名字。 我的意思是,如果我有这个清单:

Math = [Jack[], Max[], Sarah[]]

我可以轻松使用Jack[],但是当我不知道用户输入时,我不能这样编写程序!

任何想法?

    标签: python list


    【解决方案1】:

    不知道这是否为时已晚,但也许您可以使用字典:

    majors = {}
    
    for i in range(3):
        major = input('Insert a major\n')
        majors[major] = {}
    
    print("To terminate type 'end'\n")
    for major in majors:
        student = ""
        while student != "end":
            student = input('Insert a student for major {}\n'.format(major))
            if student != "end":
                majors[major][student] = {}
                stud_class = ""
                while stud_class != "end":
                    stud_class = input('Insert a class for student {}\n'.format(student))
                    if stud_class != "end":
                        grade = input('Insert grade\n')
                        majors[major][student][stud_class] = grade
    
    print(majors)
    # Example throwing inside some random bunch of data, just so you can get the feeling
    >> {'Math': {'Laura': {'IT': '10', 'English': '8'}, 'Marco': {'Spanish': '4'}}, 'English': {'Jen': {'IT': '9'}}, 'Spanish': {}}
    

    当然,您必须在用户输入上添加验证,因为事情很容易出错。

    专业的数量也是固定的,但每个学生的学生和班级不是。停止输入的一个简单解决方案可能是:当用户输入 "end" 时,您丢弃该输入并传递到下一件事。

    希望这可以帮助!

    【讨论】:

      猜你喜欢
      • 2019-07-12
      • 2020-04-04
      • 2013-04-15
      • 1970-01-01
      • 2016-10-30
      • 2020-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多