[Paul McGuire] > Does Python's run-time do any optimization of multiplication > operations, like it does for boolean short-cutting?
Usually, it is safest (and typically true) to assume that Python performs no optimizations. To go beyond making assumptions, it is easy to run a few timings: >>> from timeit import Timer >>> min(Timer('0*1234567').repeat(5)) 0.11315376674968469 >>> min(Timer('1*1234567').repeat(5)) 0.11920453577200618 >>> min(Timer('113*1234567').repeat(5)) 0.11881482143680699 In your specific case, I can answer than the source shows no special optimization for multiplications by specific values. There is a short-path for integer multiplications but it is not value specific. In Py2.5, the compiler will do a limited amount of constant folding; however, its scope is somewhat limited because expressions like a*3 vary depending on the a's type which is often not knowable by the compiler without some form of global analysis. One other thought: Python is not assembly. Run time is unlikely to be dominated by the time to execute a multiplication. With Python, it is best to focus optimization efforts on making choosing the best data structures and hoisting constants out of loops. Raymond -- http://mail.python.org/mailman/listinfo/python-list