+ 1
Can someone explain the range
4 Réponses
+ 6
range(y) gives you a list with numbers from 0 to y not included.
range(x, y) gives you a list with numbers from x to y not included.
range(x, y, z) gives you a list with numbers from x to y not included with a step of z (ie you get x, x+z, x+2z, etc.).
For example:
range(3) gives you [0, 1, 2].
range(1, 3) gives you [1, 2].
range(1, 6, 2) gives you [1, 3, 5].
+ 1
to make it easy to understand here's my example
for range (10)
it will count from 0-9 (10 numbers)
for range (5,10)
it will start at 5 ,6,7,8,9 (last num always not included)
for range(1,10,2)
1 =num to start
10=end of count
2 = num. it counts
so the result would be
1,3,5,7,9
0
Allow me to add some more technical stuff about range(). In Python 3.x the range() function returns an iterator (xrange() in Python 2). This means that in - for example - a for loop the range() produces/yields the consecutive numbers on the fly.
The old range() in Python 2 returns the whole list before the execution of an e.g. for loop. This is faster for small loops, but returning a huge list for very large loops can cause memory problems. This is solved with the xrange() (or simply range() in Python 3.x) by yielding the next number in each loop.
Now returning an iterator means that you can't print or save a list of numbers out of it directly. If you want the list out of a range() you can simply do:
my_list = list(range(100))
0
result
8