databyss wrote: > I have a simple program and the output isn't what I expect. Could > somebody please explain why? > > Here's the code: > > #simple program > print "v = 2" > v = 2 > print "v**v = 2**2 =", v**v > print "v**v**v = 2**2**2 =", v**v**v > print "v**v**v**v = 2**2**2**2 =", v**v**v**v > #end program > > Here's the output: > > v = 2 > v**v = 2**2 = 4 > v**v**v = 2**2**2 = 16 > v**v**v**v = 2**2**2**2 = 65536 > > I would expect 2**2**2**2 to be 256
Order of operations and proximity: >>> 2**(2**(2**2)) 65536 >>> ((2**2)**2)**2 256 Apparently Python assumes the former and you assume the latter. When in doubt about order of operations, use parens. And even when you *know* the order of operations, be kind to those who will have to read your code later and put in the parens anyways. -tkc -- http://mail.python.org/mailman/listinfo/python-list