> >From a technical standpoint, it has "quadratic" complexity in terms of > what work the computer is doing. It's related to the mathematical idea > that 1 + 2 + 3 + 4 + ... + n = n(n+1). > > http://en.wikipedia.org/wiki/Triangle_number
Gaa, where did my division sign go? *grin* Sorry, that equation should be: 1 + 2 + ... + n = n(n+1)/2 We can see this: ############################################### >>> import operator >>> def sumUpTo(n): ... return reduce(operator.add, range(n+1)) ... >>> for i in range(10): ... print sumUpTo(i), 'vs', i*(i+1) / 2 ... 0 vs 0 1 vs 1 3 vs 3 6 vs 6 10 vs 10 15 vs 15 21 vs 21 28 vs 28 36 vs 36 45 vs 45 ############################################### > If you do end up having to concatenate a lot of strings together, use the > join() method of lists instead. I should clarify this. I meant to say we should use the string method of join() on lists. For example, if we didn't have file1.read(), we could still do: ### ans = ''.join(file1.readlines()) ### which takes the lines of the file and joins them altogether at once. Good luck! _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor