On Thu, Aug 19, 2010 at 7:11 AM, Timothy Kinney <timothyjkin...@gmail.com> wrote: > I am getting some unexpected behavior in Python 2.6.4 on a WinXP SP3 box. > > If I run the following: > > [code] > from pylab import randint > > for s in range(100): > print randint(0,1) > [/code] > > I get 100 zeroes. > > If I import randint from random instead, I get the expected behavior > of a random distribution of 1s and 0s. > > I found this by importing * from pylab after importing randint from random. > > What is going on? Is pylab's randint function broken somehow? Could > this be due to installing scipy into a 2.6 environment when it was > designed for the 2.5 environment?
No; this is by design. The docstring for pylab's randint says: randint(low, high=None, size=None) Return random integers from `low` (inclusive) to `high` (exclusive). IOW, it's similar to random.randrange in the stdlib. In contrast, random.randint *includes* both endpoints. It's perhaps unfortunate that random.randint and pylab.randint use different conventions, but it's not a bug. Mark _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com