On Sat, Mar 19, 2016 at 8:03 AM, Steven D'Aprano <st...@pearwood.info> wrote: > On Sat, Mar 19, 2016 at 04:05:58PM +1100, Ben Finney wrote: > >> import random >> >> def roll_die(num_sides, rng=None): >> """ Return a result from a random die of `num_sides` sides. >> >> :param num_sides: The number of sides on the die. >> :param rng: An instance of `random.Random`, the random >> number generator to use. >> Default: the `random.random` instance. >> :return: The integer result from the die roll. >> >> The die is defined to have equal-probability faces, numbered >> from 1 to `num_sides`. >> >> """ >> if rng is None: >> rng = random.random > > Typo: you want rng = random.randint.
I am thinking that Ben meant: rng = random.Random(). This would then make sense in light of the test cases he sets up later. > >> result = rng.randint(1, num_sides) > > And here you just want result = rng(1, num_sides). Otherwise you're > trying to call random.randint.randint. And then this statement would be correct as Ben wrote it. Ben, please chime in if I have got it wrong. boB _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor