Alan Gauld <alan.gauld <at> btinternet.com> writes: > > On 21/06/13 07:21, Arijit Ukil wrote: > > I have following random number generation function > > > > def*rand_int* (): > > rand_num = int(math.ceil (random.random()*1000)) > > returnrand_num > > > > I like to make the value of rand_num (return of rand_int) static/ > > unchanged after first call even if it is called multiple times. > > The simple solution is to store the value in a global variable. > > rand_num = None > > def rand_int(): > global rand_num > if not rand_num: > rand_num = int(math.ceil (random.random()*1000)) > return rand_num > > Or if you really don't like globals you could create > a generator function: > > def rand_int(): > rand_num = int(math.ceil (random.random()*1000)) > while True: > yield rand_num > > Incidentally, any reason why you don't use the random.randint() function > rather than the int(ceil(...) stuff? > > HTH
a more general solution for random number generation is to use random.seed() with a fixed argument: def rand_int (seed=None): random.seed(seed) rand_num = int(math.ceil (random.random()*1000)) return rand_num then call this with the same argument to obtain the same number. But as Alan said using random.seed and random.randint is a much simpler choice. Wolfgang _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor