python - python中的第一个大项目
问题描述
我目前在我的第一个学期进行软件开发。到目前为止一直很艰难。我在 OOP 1 中做得很好,但那是在 C# 中,而我对编程的介绍是在 python 中。我在所有多项选择题或发现错误的测验和测试中都做得很好,但是当涉及到实际编码这样的东西时,我真的很挣扎,所以任何帮助都将不胜感激。
我已经解决了这个问题,我有一个想法,但我不太清楚如何实现它。
这是要解决的问题:
完成评分!对于这个项目,您将使用随附的 zip 文件中包含的文件。这是一系列虚构的考试记录。您必须创建一个 Python 应用程序来读取此文件,根据以下比例为每个学生分配一个字母等级,将学生姓名、等级和字母等级输出到屏幕,并将相同的信息输出到逗号分隔值文件中。对于完整点,您必须使用函数、参数、返回、循环、集合和条件,以及某种设计(伪代码或流程图)。命名和组织计数。请参阅随附的量规。要考虑的功能:打开文件、关闭文件、读取记录、写入记录、确定字母等级和写入控制台。应用程序中使用的等级量表: A:>95% A-:>91 且 <95 B+:>87 且 <91 B:>83 且 <
我已经完成了实际的评分功能,除非有人知道我不知道的更好的方法来做到这一点?这是我认为我需要做的事情的顺序,但我不确定如何准确。
打开文件。
从第一行拉出分数。
给它一个等级。
将其写在文件行的末尾。
循环遍历每一行的过程。
最后打印整个 .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()
解决方案
一项改进是您可以使用名为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
推荐阅读
- python - 创建服务器全局通道时避免重新启动机器人
- bash - 如何用unix中文件的修改日期减去今天的日期?
- javascript - 组合数组对象的可观察对象
- python-3.x - Keras 错误 - 预期 activation_1 的形状为 (2622,) 但数组的形状为 (1,)
- java - Socket InputStream.read(byte[],int,int) 总是返回第三个参数值
- fluentvalidation - FluentValidation:仅当字段不为空时才执行 .Must
- php - 卷曲返回'来自服务器的空回复'
- c++ - 如何在没有参数的情况下从 for_each() 调用函数
- performance - 这是否需要在 Unity android 游戏中设置帧速率?
- python - 使用 pandas 删除重复项但不能正确删除重复项