On Thu, Feb 20, 2014 at 7:16 PM, <kjaku...@gmail.com> wrote: > What I've got is > def stu_scores(): > lines = [] > with open("file.txt") as f: > lines.extend(f.readlines()) > return ("".join(lines[11:]))
This returns a string, not a list. Moreover, lines.extend() is useless. Replace this with: def stu_scores(): with open("file.txt") as f: lines = f.readlines() return lines[11:] > scores = stu_scores() > for line in scores: `for` operating on strings iterates over each character. > fields = line.split() Splitting one character will turn it into a list containing itself, or nothing if it was whitespace. > name = fields[0] This is not what you want it to be — it’s only a single letter. > sum1 = int(fields[4]) + int(fields[5]) + int(fields[6]) Thus it fails here, because ['n'] has just one item, and not nine. > sum2 = int(fields[7]) + int(fields[8]) > average1 = sum1 / 3.0 > average2 = sum2 / 2.0 > print ("%s %f %f %") (name, average1, average2) > > It says that the list index is out of range on the sum1 line. I need > stu_scores because the table from above starts on line 11. > -- > https://mail.python.org/mailman/listinfo/python-list -- Chris “Kwpolska” Warrick <http://kwpolska.tk> PGP: 5EAAEA16 stop html mail | always bottom-post | only UTF-8 makes sense -- https://mail.python.org/mailman/listinfo/python-list