2

我正在编写一个名为average_by_section: (file, str) -> float

第一个参数是一个打开的标记文件。每行代表一个学生,由一个学号、一个姓名、一个部门代码和一个年级组成,所有这些都用空格分隔。

例如,它看起来像这样:

987654322    Xu             Carolyn         L0101   19.5
233432555    Jones          Billy Andrew    L5101   16.0
555432345    Patel          Amrit           L0101   13.5

返回该部分中所有学生的平均分数,或者None如果部分代码未出现在任何学生的分数文件中,则返回。

我得到的提示是:

  • 提示:请注意,每个学生的姓名数量各不相同。
  • 提示:用于rstrip()去除行尾多余的空格。
  • 提示:为了测试这个函数,编写一个辅助函数来打开和关闭标记文件并average_by_section在其间调用。

我现在要在文件的行中吐出元素:

def average_by_section(marks, section):
    dic = {}
    for line in marks:
        wordlist = line.split()

而且我不知道接下来要做什么...

我需要一些说明/指南来完成此功能。

你会怎么写这个函数?

4

1 回答 1

2

试试这个作为下一行:

(studentNumber, *names, sectionCode, grade) = wordlist

这是一个不错的 Python3 新功能,*在该作业中具有此功能:)

关于文件的打开/关闭:您使用的是高级语言,这大大简化了这部分:

with open('/path/to/marks/file.txt') as marks:
    print average_by_section(marks, section)

就是这样。为您完成所有的with打开和关闭。

于 2012-11-16T12:36:47.553 回答