首页 > 解决方案 > python中的第一个大项目

问题描述

我目前在我的第一个学期进行软件开发。到目前为止一直很艰难。我在 OOP 1 中做得很好,但那是在 C# 中,而我对编程的介绍是在 python 中。我在所有多项选择题或发现错误的测验和测试中都做得很好,但是当涉及到实际编码这样的东西时,我真的很挣扎,所以任何帮助都将不胜感激。

我已经解决了这个问题,我有一个想法,但我不太清楚如何实现它。

这是要解决的问题:

完成评分!对于这个项目,您将使用随附的 zip 文件中包含的文件。这是一系列虚构的考试记录。您必须创建一个 Python 应用程序来读取此文件,根据以下比例为每个学生分配一个字母等级,将学生姓名、等级和字母等级输出到屏幕,并将相同的信息输出到逗号分隔值文件中。对于完整点,您必须使用函数、参数、返回、循环、集合和条件,以及某种设计(伪代码或流程图)。命名和组织计数。请参阅随附的量规。要考虑的功能:打开文件、关闭文件、读取记录、写入记录、确定字母等级和写入控制台。应用程序中使用的等级量表: A:>95% A-:>91 且 <95 B+:>87 且 <91 B:>83 且 <

我已经完成了实际的评分功能,除非有人知道我不知道的更好的方法来做到这一点?这是我认为我需要做的事情的顺序,但我不确定如何准确。

  1. 打开文件。

  2. 从第一行拉出分数。

  3. 给它一个等级。

  4. 将其写在文件行的末尾。

  5. 循环遍历每一行的过程。

  6. 最后打印整个 .txt 文件。

    def open_file():
        records = open("StudentExamRecords.txt", "r")
    
    
    # takes the students score and assigns a grade.
    def get_letter_grade(score):
        score = round(score)
        if score >= 95:
            grade = 'A'
        elif score >= 91:
            grade = "A-"
        elif score >= 87:
            grade = "B+"
        elif score >= 83:
            grade = "B"
        elif score >= 80:
            grade = "B-"
        elif score >= 78:
            grade = "C+"
        elif score >= 75:
            grade = "C"
        elif score >= 70:
            grade = "D"
        else:
            grade = "F"
    
    
    if __name__ == '__main__':
        open_file()
    

标签: python

解决方案


一项改进是您可以使用名为cutoff.

cutoff = {95: 'A', 91: 'A-', 87: 'B+'}  # etc.. you get the idea

然后你的长if语句变成一个循环。

for each in cutoff:
    if score > each:
        grade = cutoff[each]
        break

推荐阅读