0

私はそれがすでに尋ねられたことを知っていますが、答えは非常に不明確です

最初の要件は、ファイルを開くことです (残念ながら、その方法がわかりません)
2 番目の要件は、次のことを行うコードのセクションです。

各行は 1 人の学生を表し、空白で区切られた学生番号、名前、セクション コード、および中間成績で構成されます。

空白で区切られているため、その要素をターゲットにできないと思いますか?

これはファイルの抜粋で、行構造を示しています

987654322  Xu  Carolyn  L0101   19.5
233432555    Jones  Billy Andrew      L5101   16.0
555432345    Patel  Amrit                 L0101   13.5
888332441    Fletcher Bobby L0201   18
777998713   Van Ryan  Sarah Jane         L5101   20 
877633234    Zhang  Peter             L0102   9.5
543444555    Martin  Joseph           L0101   15    
876543222    Abdolhosseini  Mohammad Mazen  L0102 18.5

以下のヒントが得られました。

  • 生徒ごとの名前の数が異なることに注意してください。
  • rstrip()行末の不要な空白を取り除くために使用します。

2番目のヒントがわかりません。

これは私がこれまでに持っているものです:

counter = 0  
elements = -1  

for sets in the_file  
    elements = elements + 1  
    if elements = 3  

私はそれが何か関係がreadlines()あり、セクションコードをターゲットにしていることを知っています。

4

3 に答える 3

1
marks = [float(line.strip().split()[-1]) for line in open('path/to/input/file')]
average = sum(marks)/len(marks)

お役に立てれば

于 2012-11-08T04:55:49.320 に答える
0

ファイルを開いて書き込む strip メソッド

このようなもの?

data = {}
with open(filename) as f:#open a file

    for line in f.readlines():#proceed through file lines

        #next row is to split data using spaces and them skip empty using strip
        stData = [x.strip() for x in line.split() if x.strip()]

        #assign to variables
        studentN, studentName, sectionCode, midtermGrade = stData
        if sectionCode not in data:
            data[sectionCode] = []

        #building dict, key is a section code, value is a tuple with student info
        data[sectionCode].append([studentN, studentName, float(midtermGrade)]

#make calculations
for k,v in data.iteritems():#iteritems returns you (key, value) pair on each iteration
    print 'Section:' + k + ' Grade:' + str(sum(x[2] for x in v['grade']))
于 2012-11-08T04:40:20.347 に答える
0

多かれ少なかれ:

infile = open('grade_file.txt', 'r')
score = 0
n = 0
for line in infile.readlines():
    score += float(line.rstrip().split()[-1])
    n += 1

avg = score / n
于 2012-11-08T04:41:50.837 に答える