On 15/02/14 16:25, Marc Eymard wrote:
Here is what happens in my script:
>>> import random
>>> low_range = -1
>>> high_range = 101
>>> random.randint(low_range + 1, high_range - 1)
56
>>> low_range
-1
>>> high_range
101*
I was rather expecting:
>>> low_range
0
>>> high_range
100
Really? Why?
You never change low_range or high_range so why would
their values change?
The help() for randint says:
randint(self, a, b) method of random.Random instance
Return random integer in range [a, b], including both end points.
So the function doesn't change the values either it
just returns a random number between them.
Can somebody explain why both low_range and high_range are still
returning their initial values ?
Because you didn't change them.
When you called randint you passed in two expressions:
low_range+1 and high_range-1
which Python evaluated as 0 and 100.
But that did not change your variable values in any way, it just created
new values that were passed into randint() as 'a' and 'b' respectively.
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor