On Wed, 19 Sep 2012 16:41:20 +0200, Franck Ditter wrote: > Hello, > I wonder why sum does not work on the string sequence in Python 3 : > >>>> sum((8,5,9,3)) > 25 >>>> sum([5,8,3,9,2]) > 27 >>>> sum('rtarze') > TypeError: unsupported operand type(s) for +: 'int' and 'str' > > I naively thought that sum('abc') would expand to 'a'+'b'+'c' > And the error message is somewhat cryptic... > > franck
Summation is a mathematical function that works on numbers Concatenation is the process of appending 1 string to another although they are not related to each other they do share the same operator(+) which is the cause of confusion. attempting to duck type this function would cause ambiguity for example what would you expect from sum ('a','b',3,4) 'ab34' or 'ab7' ? even 'A' + 7 would return this error for same reason. -- It is the nature of extreme self-lovers, as they will set an house on fire, and it were but to roast their eggs. -- Francis Bacon -- http://mail.python.org/mailman/listinfo/python-list