On 21/08/12 06:12, Osemeka Osuagwu wrote:

right_product(row, col) for (row = 0, col = 18) I had anticipated this
and added the "if col>len(data[row])-3:" statement

But because of zero indexing you need this to be either:

if col >= len(data[row])-3:

or

if col > len(data[row])-4:

ie. if row length is 10 the indexes go from 0-9 so the
highest index you can use is 6.

However you have similar problems in other places, such
as your main function. Consider:

    for row in range(len(data)):
        for col in range(len(data[row])):
            if right_product(row, col) > prod:
                source = [data[row][i] for i in range(col, col+4)]

what happens when col gets bigger than len(row)-4?

            if down_right_product(row, col) > prod:
                source = [data[row+each][col+each] for each in range(4)]

And this is even worse because both additions could blow up.

It's probably better  if you can fix it in the for loops
rather than putting if guards in.


HTH
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to